我在名为 index.php 的页面上定义了一个变量 $location,然后在我在名为 loginManager.php 的脚本中设置标题时使用它。如果我只是使用 $location PHP 坚持认为它是空的。但是,如果我在页面上的任何位置回显该变量,它将识别该变量的内容。
以下是相关代码:
索引.php:
$location = $_SERVER['REQUEST_URI'];
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/loginManager.php");
登录管理器.php:
header("Location: http://www.example.com/?location=$location");
echo $location;//Adding this line allows PHP to read the contents of $location.
//If this line is commented out PHP treats it as if it were empty.
loginManager.php 上运行的代码不在函数或任何会导致 $location 范围问题的函数中。有谁知道为什么 PHP 会以这种方式运行?
编辑:当我没有在页面上的某处回显它时,我将扩展我如何知道 PHP 认为 $location 是空的。
如果我这样做:
If(empty($location))
echo "location is empty";
else
print "location is not empty";
PHP 将打印出“位置为空”。
但是,如果我做这样的事情
echo $location;
If(empty($location))
echo "location is empty";
else
print "location is not empty";
PHP 将打印出“位置不为空”。我在哪里回显 $location 似乎并不重要。
编辑#2:@jx12345 指出不是 $location 特别需要回显,只是需要回显某些内容才能读取 $location 。