variáveis globais em php não funcionam como esperado
Estou tendo problemas com variáveis globais no php. eu tenho um$screen
var definido em um arquivo, que requer outro arquivo que chama uminitSession()
definido em outro arquivo. oinitSession()
declaraglobal $screen
e depois processa $ screen mais abaixo usando o valor definido no primeiro script.
Como isso é possível?
Para tornar as coisas mais confusas, se você tentar definir $ screen novamente, ligue para oinitSession()
, usa o valor usado pela primeira vez novamente. O código a seguir descreverá o processo. Alguém poderia tentar explicar isso?
$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"
Atualizar:
Se eu declarar$screen
global novamente antes de exigir o segundo modelo, $ screen é atualizado corretamente para oinitSession()
método. Estranho.