php – 包含,require和require_once
发布时间:2020-12-13 16:02:26 所属栏目:PHP教程 来源:网络整理
导读:今天我试图包含返回对象的文件.我总是使用require_once,但是现在我注意到它的奇怪行为. 文件main.php $lang = false;$lang-name = "eng";$lang-author = "Misiur";$lang-text = "Text is test";$lang-undefined = "Undefined";return $lang; 文件index.php $
今天我试图包含返回对象的文件.我总是使用require_once,但是现在我注意到它的奇怪行为.
文件main.php $lang = false; $lang->name = "eng"; $lang->author = "Misiur"; $lang->text = "Text is test"; $lang->undefined = "Undefined"; return $lang; 文件index.php $lang = include('langs/eng/main.php'); var_dump($lang); echo "<br />"; $lang = require('langs/eng/main.php'); var_dump($lang); echo "<br />"; $lang = require_once('langs/eng/main.php'); var_dump($lang); 结果 object(stdClass)#9 (4) { ["name"]=> string(3) "eng" ["author"]=> string(6) "Misiur" ["text"]=> string(12) "Text is test" ["undefined"]=> string(9) "Undefined" } object(stdClass)#10 (4) { ["name"]=> string(3) "eng" ["author"]=> string(6) "Misiur" ["text"]=> string(12) "Text is test" ["undefined"]=> string(9) "Undefined" } bool(true) 为什么会那样?我认为require和require_once是一回事,只有require_once更安全,因为它不会重复包含. 谢谢. 编辑: 但是当我只使用require_once时,我也得到了bool(true).所以require_once只返回include的结果,而不是它的内容? EDIT2: 大声笑.我没注意到,之前我在我的类中需要这个文件,这个文件是在代码执行之前创建的($this-> file = require_once(“langs / $name / main.php”);) 所以require_once工作正常.多谢你们!
当您使用include并要求您获得您正在引用的页面的结果时.当你使用require_once时,它检查并发现页面已经使用require加载,所以它返回true告诉你它已经在某个时候成功加载了.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |