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.

questionAnswers(7)

yourAnswerToTheQuestion