include、include_once、require、require_once的区别
2017-07-02 22:55
260 查看
用法:以include为例
(1)include '要引入的文件的全路径';
(2)include ('要引入的文件的全路径');
(3)$name = '要引入的文件的全路径'; include "$name";如果很多地方需要引入这个文件,并且这个文件路径不固定,需要经常改,可以用这种方法,这样可以避免如果需要改变文件路径的时候需要改动太多的地方。
特点:
include会重复引入同名文件,如果引入的文件不存在,它依然会继续向下执行。
include_once不会引入同名文件,如果引入的文件不存在,让依然会继续向下执行。
require会重复引入同名文件,如果引入的文件不存在,它不会继续向下执行。
require_once不会重复引入同名文件,如果引入的文件不存在,它不会向下执行。
如果我们在引入某些文件(比如获取数据库链接,打开文件等。我们建议大家使用——once这种方式来引入文件。),防止资源浪费。
文件在引入的时候的机制(require)
当我们在一个文件中引入另一个文件时,其实是把另一个文件的执行结果放在引入文件的位置。而不是把被引入的文件的代码放到引入文件的位置。
在我们引入一个文件时,在默认情况下,成功返回1
程序也可以根据实际情况返回数据,比如一个数组
在引入文件过程中,当遇到被引入文件的return语句时,引入过程将终止,返回主文件,继续执行。
一个案例:
B.php
C.php
运行B.php
<
4000
/p>
为什么会错呢?
第一步:首先程序会先把整个程序加载到内存,就相当于把下面的代码加载到内存了
注意:此时上面所有的代码都没开始执行,上面的require './C.php'只是作为一行代码待在第5行,此时也不会去执行C.php里面的代码
第二步:程序加载到内存后,程序开始从上往下执行,首先执行test();,因为在第一步的程序加载到内存中这一步已经把test(){echo …}加载到内存了,所以上面可以直接调用,能正确执行,接着执行test2(),test2()函数属于C.php里面的代码,此时还没有被加载到内存中来,所以无法在内存中找到test2()函数的定义,所以这里会报错,但是如果我们把test2()挪到require './C.php’下面就不会报错了,因为在执行到require这一行来的时候才会去执行C.php里的代码,当执行C.php里的代码的时候也会重复以上两步,先把代码加载到内存(不过此时会加载到和B所在的同一块内存)里面如果有函数,就把函数的定义加载到代码区。然后开始执行C.php里的代码,不过此时C.php执行代码所处的环境是B.php所在的环境。然后把执行结果返回。
(1)include '要引入的文件的全路径';
(2)include ('要引入的文件的全路径');
(3)$name = '要引入的文件的全路径'; include "$name";如果很多地方需要引入这个文件,并且这个文件路径不固定,需要经常改,可以用这种方法,这样可以避免如果需要改变文件路径的时候需要改动太多的地方。
特点:
include会重复引入同名文件,如果引入的文件不存在,它依然会继续向下执行。
include_once不会引入同名文件,如果引入的文件不存在,让依然会继续向下执行。
require会重复引入同名文件,如果引入的文件不存在,它不会继续向下执行。
require_once不会重复引入同名文件,如果引入的文件不存在,它不会向下执行。
如果我们在引入某些文件(比如获取数据库链接,打开文件等。我们建议大家使用——once这种方式来引入文件。),防止资源浪费。
文件在引入的时候的机制(require)
当我们在一个文件中引入另一个文件时,其实是把另一个文件的执行结果放在引入文件的位置。而不是把被引入的文件的代码放到引入文件的位置。
在我们引入一个文件时,在默认情况下,成功返回1
程序也可以根据实际情况返回数据,比如一个数组
在引入文件过程中,当遇到被引入文件的return语句时,引入过程将终止,返回主文件,继续执行。
一个案例:
B.php
C.php
运行B.php
<
4000
/p>
为什么会错呢?
第一步:首先程序会先把整个程序加载到内存,就相当于把下面的代码加载到内存了
注意:此时上面所有的代码都没开始执行,上面的require './C.php'只是作为一行代码待在第5行,此时也不会去执行C.php里面的代码
第二步:程序加载到内存后,程序开始从上往下执行,首先执行test();,因为在第一步的程序加载到内存中这一步已经把test(){echo …}加载到内存了,所以上面可以直接调用,能正确执行,接着执行test2(),test2()函数属于C.php里面的代码,此时还没有被加载到内存中来,所以无法在内存中找到test2()函数的定义,所以这里会报错,但是如果我们把test2()挪到require './C.php’下面就不会报错了,因为在执行到require这一行来的时候才会去执行C.php里的代码,当执行C.php里的代码的时候也会重复以上两步,先把代码加载到内存(不过此时会加载到和B所在的同一块内存)里面如果有函数,就把函数的定义加载到代码区。然后开始执行C.php里的代码,不过此时C.php执行代码所处的环境是B.php所在的环境。然后把执行结果返回。
相关文章推荐
- include,include_once和require,require_once的区别 {转}
- include,include_once和require,require_once的根本区别
- PHP include require require_once区别
- require(),include(),require_once()和include_once()区别
- require(),include(),require_once()和include_once()之间的区别
- require、require_once、include和include_once的区别
- PHP中 Include ,Include_once 和 require,require_once 的区别
- require(),include(),require_once()和include_once()区别
- require include include_once() include() 区别
- PHP 中require、require_once、include、include_once区别
- require(或requier_once())和include()(或include_once())只有一个区别
- include,include_once,require,require_once的区别
- PHP文件包含语句 include、include_once、require、require_once的区别
- include,include_once和require,require_once的区别 {转}
- require(),include(),require_once()和include_once()区别
- require(),include(),require_once()和include_once()的区别
- require(),include(),require_once()和include_once()区别
- require,require_once,include,include_once的区别
- PHP 中 require、require_once、include、include_once介绍与区别
- Include,require,include_once,require_once的区别