Zhang Jiuan’ Notes

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

为了说明问题,我们看如下三个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快
好多。

多谢
张久安

If you enjoyed this post, make sure you subscribe to my RSS feed!

No Comments, Comment or Ping

Reply to “再谈php的include和include_once(require和require_once)”

You must be logged in to post a comment.

返回顶部