繁体   English   中英

PHP的require_once修改局部变量?

[英]php require_once modify the local variable?

在我的网页中,我写道:

<?php
//define('__PUBLIC__', $_SERVER['DOCUMENT_ROOT'].'/public'); 
$doc_public = $_SERVER['DOCUMENT_ROOT'].'/public';
echo "Before include...<==============>$doc_public";
?>
<?php require_once($doc_public.'/inc/head.php');  ?>
<?php echo "After include...<==============>$doc_public"; ?>

页面显示: 在此处输入图片说明

当我注意到页脚中的致命错误时,首先发生了这种情况,但是头部很好。

尽管我可以实现define或常量变量来避免这种情况,但我仍然很好奇它是如何发生的。

PS:我在Apache上使用端口8001运行此文件。此文件在【apache \\ conf \\ extra \\ httpd-vhosts.conf】中设置。 我在此站点下运行多个webapp。 我只是分享这些信息,因为我不确定这与本案有任何关系。

谢谢!

当您需要文件时,如果修改了变量,它也会影响原始脚本,这就是它的设计方式。 Require不会创建一个与包含文件分开的辅助环境,它只是按顺序添加PHP代码,就像您在初始文件中编写代码一样。

看一下官方的PHP文档,第一个示例与您的情况完全相同

http://php.net/manual/zh/function.include.php

(include与require相同,后者只是抛出错误。有关include和require之间的区别的更多信息,请参见http://php.net/manual/en/function.require.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM