在我的网页中,我写道:
<?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或常量变量来避免这种情况,但我仍然很好奇它的发生方式。
P.S .:我在Apache上使用端口8001运行它。该端口在[apache \ conf \ extra \ httpd-vhosts.conf]中设置。我在此站点下运行多个webapp。我只是分享这些信息,因为我不确定这与本案无关。
谢谢!
答案 0 :(得分:2)
当您需要文件时,如果修改了变量,它也会影响原始脚本,这就是它的设计方式。 Require不会创建一个与包含文件分开的辅助环境,它只是按顺序添加PHP代码,就像您在初始文件中编写代码一样。
看看官方的PHP文档,第一个示例与您的案例完全相同
http://php.net/manual/en/function.include.php
(include与require相同,后者只是抛出错误。有关include和require http://php.net/manual/en/function.require.php之间的区别的更多信息)