use*_*985 6 php variables scope
我已经阅读了很多很多线索,但仍然无法绕过它.
这是我的基本问题:
header.php包括一个名为的文件navigation.php.内navigation.php,$previous并$next定义.使用echo语句我已经验证它们有值.
接下来,header.php包含一个名为的文件backnext.php.我需要backnext.php知道的数值$previous和$next.如果我将它们声明为global顶部backnext.php,我不会收到错误,但echo声明显示它们是空的.如果我不这样做,我会收到undefined variable错误.
确切位置在哪里,我需要他们宣告为global有backnext.php能够正确读取它们的值?
这些文件都不使用函数或类.
如果没有这些文件的函数或类则$prev和$next在全球范围内,应该由所有的包含文件中可以看出,你不应该需要使用global关键字.
听起来你的包含顺序可能有点不对劲.
更新:
如果我理解正确你有这样的事情:
header.php:
<?php
echo "In header.php\n";
require_once("navigation.php");
require_once("backnext.php");
echo "Also seen in header.php:\n";
echo "prev=$prev\n";
echo "next=$next\n";
?>
Run Code Online (Sandbox Code Playgroud)
navigation.php:
<?php
echo "In navigation.php\n";
$prev = "Hello World#1";
$next = "Hello World#2";
echo "Exiting navigation.php\n";
?>
Run Code Online (Sandbox Code Playgroud)
backnext.php:
<?php
echo "In backnext.php\n";
echo "prev=$prev\n";
echo "next=$next\n";
echo "Exiting backnext.php\n";
?>
Run Code Online (Sandbox Code Playgroud)
如果我运行这个我得到:
In header.php In navigation.php Exiting navigation.php In backnext.php prev=Hello World#1 next=Hello World#2 Exiting backnext.php Also seen in header.ph prev=Hello World#1 next=Hello World#2
backnext.php能够看到$prev和$next.