Las variables globales en PHP no funcionan como se espera

Estoy teniendo problemas con las variables globales en PHP. tengo un$screen var establecido en un archivo, que requiere otro archivo que llame a uninitSession() definido en otro archivo más. losinitSession() declaraglobal $screen y luego procesa $ screen más abajo usando el valor establecido en el primer script.

¿Cómo es esto posible?

Para hacer las cosas más confusas, si intenta configurar $ screen nuevamente, llame alinitSession(), utiliza el valor usado por primera vez una vez más. El siguiente código describirá el proceso. ¿Podría alguien intentar explicar esto?

$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" 

Actualizar:
Si declaro$screen global nuevamente antes de requerir el segundo modelo, $ screen se actualiza correctamente para elinitSession() método. Extraño.

Respuestas a la pregunta(7)

Su respuesta a la pregunta