在学习Zend的过程中看到这样的代码:
$config = new Zend_Config(require 'config.php');
自己也进行了一些尝试:var_dump(require 'test.php')
int(1)
...
请问PHP的require、include的机制是什么?
PS:虽然下载了PHP的源码,但一时找不出头绪。
Update
一个测试 test.php output.php
// output.php
output(require 'test.php');
// or output(include 'test.php');
function output($test) {
var_dump($test);
}
情形1
// test.php 1
return 123;
// output 1
int(123)
情形2
// test.php 2
echo 123;
// output 2
123int(1)
情形3
// test.php 3
echo 123;
die;
// output 3
php官方给出的解释,require和include的区别在于,require遇到错误会抛出致命错误,而include只会抛warning
require() is identical to include() except upon failure it will also produce a fatal E_COMPILE_ERROR level error. In other words, it will halt the script whereas include() only emits a warning (E_WARNING) which allows the script to continue.
See the include() documentation for how this works.
他们的原理是:把被include的文件按照HTML去解析,然后把输出内容替代include语句的位置。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。