2012-05-16 7 views
5

En un intento de acelerar mi flujo de trabajo y ayudar a los chicos de la parte final con integración (soy un desarrollador front-end) estoy intentando extender el archivo incluye la función envolviendo comentarios en cada archivo include para dar salida a su nombre de archivo:El archivo PHP incluye la función interna, necesita retener las variables globales. (Intentando ajustar los comentarios HTML)

function include_module($path) { 
    echo "\n\n<!-- MODULE: ".basename($path, '.php')." -->\n"; 
    include($path); 
    echo "\n<!-- /MODULE: ".basename($path, '.php')." -->\n\n"; 
} 
include_module('form-controls.php'); 

Sin embargo, esto resulta en la pérdida de acceso a cualquier variable establecida fuera de la función. Sé que puedo hacer:

global $var 

Pero eso sólo me va a dar acceso a $ var (soy consciente de lo que podía hacer $ var [ 'var1'], etc.), ¿hay alguna manera de hacerlo 'global ¿Todos o alguien puede pensar en un enfoque diferente para envolver los comentarios?

Saludos :)

+0

Podría pasar '$ GLOBALS' como argumento ... pero aún necesitará acceder a él con una matriz dentro de la función a menos que llame a' extract() '. Nada de eso es probablemente una buena idea ... – prodigitalson

+1

@prodigitalson no hay necesidad de pasar ninguno de los superglobales como argumento, son accesibles en cualquier ámbito. –

Respuesta

5

Prueba esto:

function include_module($path) { 
    foreach($GLOBALS as $name => $value) global $$name; 
    echo "\n\n<!-- MODULE: ".basename($path, '.php')." -->\n"; 
    include($path); 
    echo "\n<!-- /MODULE: ".basename($path, '.php')." -->\n\n"; 
} 
include_module('form-controls.php'); 
+3

ver [extracto] (http://www.php.net/extract)() – goat

+1

Este o extracto obtiene mi voto – Jay

+0

Gracias, eso funciona perfectamente. – 4lun

5

Puede utilizar el siguiente para acceder a las variables globales.

extract($GLOBALS, EXTR_REFS); 
Cuestiones relacionadas