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

前端之家收集整理的这篇文章主要介绍了PHP 5 – 包含没有类或函数的包含文件的可变范围前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经阅读了很多很多线索,但仍然无法绕过它.

这是我的基本问题:

header.PHP包含一个名为navigation.PHP文件.在navigation.PHP中,定义了$prevIoUs和$next.使用echo语句我已经验证它们有值.

接下来,header.PHP包含一个名为backnext.PHP文件.我需要backnext.PHP才能知道$prevIoUs和$next的值.如果我在backnext.PHP的顶部将它们声明为全局,我不会收到错误,但echo语句显示它们是空的.如果我不这样做,我会得到一个未定义的变量错误.

我究竟需要将它们声明为全局,以使backnext.PHP能够正确读取它们的值?

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

如果这些文件都没有函数或类,则$prev和$next在全局范围内,并且应该被所有包含文件看到,并且您不需要使用global关键字.

听起来你的包含顺序可能有点不对劲.

更新:

如果我理解正确你有这样的事情:

header.PHP文件

  1. <?PHP
  2. echo "In header.PHP\n";
  3.  
  4. require_once("navigation.PHP");
  5. require_once("backnext.PHP");
  6.  
  7. echo "Also seen in header.PHP:\n";
  8. echo "prev=$prev\n";
  9. echo "next=$next\n";
  10. ?>

navigation.PHP

  1. <?PHP
  2. echo "In navigation.PHP\n";
  3. $prev = "Hello World#1";
  4. $next = "Hello World#2";
  5. echo "Exiting navigation.PHP\n";
  6. ?>

backnext.PHP

  1. <?PHP
  2. echo "In backnext.PHP\n";
  3. echo "prev=$prev\n";
  4. echo "next=$next\n";
  5. echo "Exiting backnext.PHP\n";
  6. ?>

如果我运行这个我得到:

  1. In header.PHP
  2. In navigation.PHP
  3. Exiting navigation.PHP
  4. In backnext.PHP
  5. prev=Hello World#1
  6. next=Hello World#2
  7. Exiting backnext.PHP
  8. Also seen in header.ph
  9. prev=Hello World#1
  10. next=Hello World#2

backnext.PHP能够看到$prev和$next.

猜你在找的PHP相关文章