在PHP中,出于什么原因我不能包含外部文件中的变量?

时间:2008-10-07 17:33:10

标签: php

如果我在Page1.php和Page2.php中定义了$ var,我有

//Page2.php
include('Page1.php');

echo $var;

为什么它不会将$ var的值打印到屏幕上?这些文件位于同一目录中,因此路径不应该是问题。我已经检查了php.ini文件,并没有真正跳出来对我。有什么想法吗?

4 个答案:

答案 0 :(得分:2)

可能的原因:

  • 当前工作路径并不总是与文件相同。例如,如果将Page2.php包含在更高级别,那么更高级别将是路径。确保您已直接加载Page2.php或相应地移动Page1.php。
  • 确保$var真正符合您的预期。在Page1.php中回应它以确认。 (这也检查正在包含的文件)
  • 如果消息来源不是那么简单,请确保您没有在任何地方取消定义/清除$var

答案 1 :(得分:0)

我刚刚测试过:

page1.php中:

<?php
$foo = "bar"
?>

使page2.php:

<?php
include('page1.php');
echo $foo;
?>

这很有效。

您可能想要检查文件路径。 var_dump()也很方便检查变量输出。

答案 2 :(得分:0)

如果是路径问题,您会在错误日志中看到警告。您也可以更改为require而不是include,这将变得很明显。

echo getcwd();

您还可以打印工作目录以找出问题所在。

是否在函数中创建了$ var?如果是这样,请确保您有

global $var;

在该函数中第一次赋值之前。

答案 3 :(得分:0)

检查您是否未关闭整个error_reporting。也许包含错误,因此变量永远不会被包括在内。