2012-05-16 5 views
5

Nel tentativo di accelerare il mio flusso di lavoro e aiutare il back end ragazzi con integrazione (io sono un front end dev) sto tentando di estendere il file include la funzione racchiudendo i commenti attorno a ogni file include per l'output il suo nome file:Il file PHP include la funzione interna, è necessario conservare le variabili globali. (Cercando di racchiudere commenti 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'); 

Tuttavia, ciò comporta la perdita di accesso a qualsiasi variabile impostata all'esterno della funzione. So che posso fare:

global $var 

ma che solo mi darà l'accesso a $ var (mi rendo conto che potrei fare $ var [ 'var1'], ecc), esiste un modo di fare 'globale tutto o qualcuno può pensare ad un approccio diverso per avvolgere i commenti?

Saluti :)

+0

si poteva passare '$ GLOBALS' come argomento ... ma youll ancora bisogno di accedervi con una serie all'interno della funzione a meno che non si chiama' estratto() '. Nessuna di queste è probabilmente una buona idea ... – prodigitalson

+1

@prodigitalson non è necessario passare mai nessuna delle superglobali come argomento, sono accessibili in qualsiasi ambito. –

risposta

5

provare questo:

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

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

+1

Questo o estratto ottiene il mio voto – Jay

+0

Grazie, funziona perfettamente. – 4lun

5

È possibile utilizzare il seguente per accedere alle variabili globali.

extract($GLOBALS, EXTR_REFS); 
Problemi correlati