After taking your course, my knowledge of PHP has ballooned! "Dopo aver preso il corso, la mia conoscenza di PHP è aumentato a dismisura!"
Derubare

Errori sopprimendo

A volte si vuole errori generati dal codice per essere soppresso, forse perché si sta gestendo questo in un altro modo.

Error Control Operator

L'operatore di controllo dell'errore è @. Questo viene aggiunto alla parte anteriore delle espressioni così variabili, funzioni e comprendono le chiamate.

Tuttavia non è possibile utilizzare l'operatore di controllo dell'errore in cui qualcosa è dichiarata in modo da aggiungere di fronte a una funzione o definizione di classe.

Futhermore questo operatore sopprime solo i messaggi di espressione, non sopprimere eccezioni , questi verranno comunque generata come normale. Un esempio di questo in azione è mostrato di seguito.

results = @mysql_select ( " SELECT * FROM Users " ) ; $ Risultato = @ mysql_select ("SELECT * FROM Utenti");

Quindi il codice di cui sopra farà in modo che nessun avviso o avvisi sono gettati dalla funzione di cui sopra.

Tuttavia è necessario fare attenzione che l'operatore di controllo degli errori non si abusi, dovrebbe essere usato per fermare gli errori gettati in cui sai che è sicuro di ignorare non come un modo generale di ignorare i problemi potenziali, a scapito di scrittura difensiva codice .

name = null ; $ Nome = null;
isset ( $ myname ) ) if (isset ($ myname))
{
name = $ myname ; $ Name = $ myname;
}

Il codice precedente controlla se una variabile è impostata prima di assegnarlo a $ nome, perché il programmatore non è sicuro se sarà impostata, vuole così interrompere un messaggio di errore che appare. Tuttavia, questo errore può essere ignorato utilizzando l'operatore di controllo dell'errore in questo modo:

name = @ $ myname ; Name = $ @ $ myname;

Unfortunatley utilizzando il metodo di soppressione di errore è due volte più lento, come il isset. Pertanto non si deve usare l'operatore di controllo degli errori, come scorciatoia intorno prove difensive logica di programmazione

Segnalazione di errori

È inoltre possibile nascondere erori in genere utilizzando la funzione error_reporting per uno script.

Questa funzione limitare il tipo di errori vengono visualizzati

0 ) ; error_reporting (0);

Il codice di cui sopra si spegne tutta la segnalazione degli errori per uno script, ma si può anche permettere certi tipi di errori utilizzando gli operatori bit a bit insieme ai tipi di errore.

Valore Costante Descrizione
1 E_ERROR Utilizzando questa opzione si sopprimere eventuali errori fatali, questi sono errori in cui lo script di solito non possono continuare.
2 E_WARNING Questa opzione ti permette di sopprimere gli avvisi, che non sono fatali, ma sono problemi di dettaglio con il codice, che potrebbero in alcune circostanze essere gravi.
4 E_PARSE Questa opzione ti permette di sopprimere errori di analisi, che sono errori che si verificano quando il PHP tenta di analizzare la sceneggiatura durante la fase di compilazione, ma non riesce per qualche motivo.
8 E_NOTICE Indicare che lo script ha incontrato qualcosa che potrebbe essere un errore, ma potrebbe succedere normalmente quando si esegue uno script.

Pertanto utilizzando i valori diversi messaggi di errore possono essere suppresed come mostrato di seguito:

E_ERROR | E_WARNING ) ; error_reporting (E_ERROR | E_WARNING);

Questo segnalare errori fatali e avvisi

E_NOTICE ) ; error_reporting (E_NOTICE);

Rapporti tutto tranne le comunicazioni. Quindi si può aggiungere esclusioni come molti a uno script nel campo della moda sopra, come vi piace utilizzando l'operatore |.

Ricorda che mentre gli errori sopprimendo in alcuni casi può essere necessario, è sempre meglio provare prima ed evitare l'errore, piuttosto che sopprimerla. Questo dovrebbe rendere lo script più efficiente.


Nessun commento è stato fornito.
security image
Scritto da Dominic Skinner
Ultimo aggiornamento: 2011/10/25 16:00:38