[英]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.