php 中的全局变量未按预期工作
我在php中的全局变量上遇到了麻烦。我在一个文件中设置了一个var,它需要另一个文件调用另一个文件中定义的文件。声明然后使用第一个脚本中设置的值进一步向下处理$screen。$screen
initSession()
initSession()
global $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()