Mysql
 sql >> Database >  >> RDS >> Mysql

come usare la funzione require_once inside

In realtà, da un punto di vista tecnico, puoi usare require_once() all'interno di una funzione. Tuttavia è molto probabilmente una cattiva idea e non quello che vuoi davvero fare:

  • l'inclusione del codice all'interno di una funzione include letteralmente il codice lì. Ciò significa che tutto il codice incluso viene valutato all'interno dell'ambito della funzione. PHP dichiara tutte le funzioni globali, ma le variabili e le semplici sequenze di codice sono associate localmente, quindi non visibili al di fuori della funzione eseguita in questo momento.

  • poiché utilizzi un percorso relativo per caricare il file incluso, sei limitato a eseguire la tua funzione da un determinato livello di file system. Questo limita il modo in cui il tuo codice può essere utilizzato...

Anche se questo potrebbe effettivamente essere quello che vuoi quando il file incluso contiene una configurazione locale, quasi sicuramente ti imbatterai in questo:

  • require_once() richiede solo una volta, ecco a cosa serve la funzione. Ciò significa:se inserisci la tua funzione getTierOne() più di una volta quindi per ogni successiva esecuzione il require_once() semplicemente non includere qualsiasi codice, poiché è già presente nella prima esecuzione. Quindi, se la tua configurazione viene inclusa o meno dipende! È un design orribile!

Quindi o includi la tua configurazione a livello globale e, ad esempio, memorizzala all'interno di una variabile a cui puoi fare riferimento all'interno della tua funzione oppure usi require() o include() per assicurarsi che la configurazione sia davvero inclusa in ogni esecuzione della funzione.