У меня проблемы с глобальными переменными в php. У меня есть $screen
var, установленный в одном файле, для которого требуется другой файл, который вызывает 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
global еще раз перед тем, как потребовать вторую модель, $ screen обновится должным образом для метода initSession()
. Странно.