en teoría, según lo que has explicado se supone que todo va bien. es decir, la variable global debe estar definida al menos luego de la primera invocación. ahora bien, dejando a un lado lo que intentas hacer y enfocandonos más en la metodología... ¿no te sería más cómodo si creas la variable en el ámbito global? en verdad, no me hace sentido pasar un valor por una función que crea una variable global. claro, pudiera tener su aplicación en casos particulares pero este no lo es. a la solución que voy es crear una variable en javascript y como valor imprimes el resultado de php.
Código:
// desde el ambito global de javascript ;
var variable = <?php echo contenido a imprimir; ?>;
por supuesto, dicho fragmento va en:
1) cualquier documento que php pueda analizar
2) si es un documento js, puede ser incluido directamente asi. si es un documento php/html, va entre las etiquetas <script>.