2010-02-16 11 views
6

Eventuali duplicati:
Strict mode in PHP?C'è qualcosa in PHP simile a Option Explicit in VB

Sto facendo un grande progetto in PHP. In PHP non è necessario dichiarare variabili. Questo sta causando molti problemi per me.

In Visual Basic 6, l'istruzione Option Explicit rende obbligatorio dichiarare le variabili. È qualcosa di simile disponibile in PHP?

+0

cosa dire delle funzioni indefinite all'interno se non che è in esecuzione in fase di esecuzione? – Yosef

risposta

6

Se si attiva sui messaggi di errore E_NOTICE, PHP vi racconterà non inizializzate variabili:

ini_set("error_reporting", E_ALL); 

non inizializzata è un po 'diverso rispetto non dichiarato, ma dovrebbe dare un effetto simile.

+3

+1 Vale anche la pena notare che 'E_ALL' fa * not * include' E_STRICT'. Quindi farei 'ini_set (" error_reporting ", E_ALL & E_STRICT);'. Vale anche la pena notare; Puoi impostare 'error_reporting' in' php.ini' o nella tua definizione di host virtuale Apache usando 'php_value'. – Asaph

4
error_reporting(E_ALL); 

getta un avviso quando si tenta di utilizzare una variabile non definita

una punta più generale: (max. 20 righe) funzioni usare al posto di codice globale, e renderli piccoli. Dal momento che le variabili sono locali alle funzioni, ci sono meno possibilità di dimenticare o digitare erroneamente un nome di variabile.

1

L'aumento di error reporting level influisce solo sul comportamento di php quando una variabile/elemento non definito viene utilizzata come valore di rvalue, come echo $doesnotexist;.
Ma option explicit on vieta anche l'uso di variabili non dichiarate come lvalue

Option Explicit On 
Dim x As Integer 
x = 10 
y = 11 ' error, variable is not declared 

Non c'è alcuna opzione di configurazione o simili parametro in php.

+0

Là _could_ è stata una parola chiave dichiarata in php5, esp. per classi/membri, ma non c'era. – VolkerK

Problemi correlati