IT技术博客大学习 共学习 共进步

再谈php的include和include_once(include和require_once)

Zhang Jiuan' Notes 2010-03-12 13:37:52 浏览 3,282 次

为了说明问题,我们看如下三个php文件:
//file: functions.php
require_once(’my_once.php’);
require_once(’my_once.php’);
function test()
{
require_once(’my_unonce.php’);
//require(’my_unonce.php’);
}

test();
test();

//file:my_once.php
printf(”%s\n”, ‘my_once’);

//file: my_unonce.php
printf(”%s\n”, ‘my_unonce’);

好,现在我们做一下测试:
php functions.php
输出结果如下:
my_once
my_unonce
这与我们期望的结果是不一致的,因为我们期望调用两次test函数,
即让test做两遍事情,但事实上只做了一次。
我们对functions.php改一下,require_once改成require(函数内部)
//file: functions.php
require_once(’my_once.php’);
require_once(’my_once.php’);
function test()
{
//require_once(’my_unonce.php’);
require(’my_unonce.php’);
}

test();
test();
再试一下,输出结果如下:
my_once
my_unonce
my_unonce
正是我们期望的结果。
时常听人说,即然有了require_once就不要再使require了,实不正
确的,各有各的用处点吧。

另外需要说明的是,实际效率也是不同的,require要比require_once快
好多。

建议继续学习

  1. include(“./file.php”)和include(“file.php”)区别 (阅读 12,681)
  2. php两种include加载文件方式效率比较 (阅读 3,502)
  3. require(),include(),require_once()和include_once()的异同 (阅读 3,245)
  4. 从php核心代码看require和include的区别 (阅读 2,944)
  5. 深入理解PHP之require/include顺序 (阅读 2,703)
  6. 如何安全的Include文件 (阅读 2,581)