在PHP中,出于什么原因我不能包含来自外部文件的变量?
如果在Page1.php和Page2.php中定义了$var,那么 //Page2.php include('Page1.php'); echo $var; //Page2.php 包括('Page1.php'); echo$var; 出于什么原因,它不会将$var的值打印到屏幕上?这些文件位于同一目录中,因此路径不应成为问题。我检查了php.ini文件,并没有什么真正让我感到惊讶。有什么想法吗?可能的原因:在PHP中,出于什么原因我不能包含来自外部文件的变量?,php,Php,如果在Page1.php和Page2.php中定义了$var,那么 //Page2.php include('Page1.php'); echo $var; //Page2.php 包括('Page1.php'); echo$var; 出于什么原因,它不会将$var的值打印到屏幕上?这些文件位于同一目录中,因此路径不应成为问题。我检查了php.ini文件,并没有什么真正让我感到惊讶。有什么想法吗?可能的原因: 当前工作路径并不总是与文件的相同。例如,如果Page2.php包含在更高级别,则该
- 当前工作路径并不总是与文件的相同。例如,如果Page2.php包含在更高级别,则该更高级别将是路径。请确保已直接加载Page2.php或相应地移动Page1.php
- 确保
确实是您所期望的。在Page1.php中回显以确认。(这也会检查是否包含正确的文件)$var
- 如果源代码并非如此简单,请确保您没有在任何地方取消定义/清除
$var
<?php
$foo = "bar"
?>
page2.php:
<?php
include('page1.php');
echo $foo;
?>
这很有效
您可能需要检查文件路径。此外,var_dump()还可以方便地检查变量输出。如果是路径问题,您会在错误日志中看到警告。您还可以更改为require而不是include,这将变得显而易见
echo getcwd();
您还可以打印工作目录,以找出问题所在
$var是在函数中创建的吗?如果是这样的话,确保你有
global $var;
在该函数的第一次赋值之前。检查您是否未关闭整个函数。可能include出错了,因此变量从未被包含。…我假设您已经检查过$var中是否确实包含内容?我无法计算在字符串中意外出现空白或“”并试图将其打印出来的次数。第2页中的include调用来自何处?var是如何声明的?Steve,是的,我检查过$var是否有内容。Paolo,$var在第1页声明$var=“你好”;查看Page1.php也会很有帮助。