我在使用 php 中的全局变量时遇到问题。我$screen
在一个文件中设置了一个 var,它需要另一个文件调用另一个文件中initSession()
定义的 var。initSession()
声明然后global $screen
使用第一个脚本中设置的值进一步向下处理 $screen。
这怎么可能?
更令人困惑的是,如果您尝试再次设置 $screen 然后调用initSession()
,它会再次使用第一次使用的值。以下代码将描述该过程。有人可以解释一下吗?
$screen = "list1.inc"; // From model.php
require "controller.php"; // From model.php
initSession(); // From controller.php
global $screen; // From Include.Session.inc
echo $screen; // prints "list1.inc" // From anywhere
$screen = "delete1.inc"; // From model2.php
require "controller2.php"
initSession();
global $screen;
echo $screen; // prints "list1.inc"
更新:
如果我$screen
在需要第二个模型之前再次声明全局,则 $screen 会为该initSession()
方法正确更新。奇怪的。