PHP 5 - 包含没有类或函数的包含文件的可变范围

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错误.

确切位置在哪里,我需要他们宣告为globalbacknext.php能够正确读取它们的值?

这些文件都不使用函数或类.

Kev*_*Kev 8

如果没有这些文件的函数或类则$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.