Tasti inesistenti che restituiscono null invece di eccezione

0

Ho ereditato un progetto da un altro sviluppatore ed è pieno di errori con il seguente tipo di errore:

echo $data['example']; 

Notice: Undefined index: example

Ovviamente, ho intenzione di refactoring questo per verificare l'esistenza della chiave prima della dichiarazione di stampa. Tuttavia, la mia domanda non è correlata al codice per-se.

Esiste una versione di PHP, o forse un'impostazione all'interno di PHP in cui echo $data['example']; restituisce semplicemente null o 0 nel caso di una chiave inesistente?

Chiedo perché sto cercando di verificare se il precedente sviluppatore abbia scritto codice errato o se il loro ambiente di sviluppo non è configurato correttamente. Se è il secondo, possiamo ovviamente risolvere questi problemi per i progetti futuri di questo sviluppatore.

    
posta Dan Hanly 05.08.2014 - 09:29
fonte

1 risposta

2

Un'espressione che accede a chiavi inesistenti restituisce null , proprio come l'utilizzo di variabili che non sono state dichiarate o che le valutazioni inizializzate sono nulle.
Queste note, tuttavia, sono lì per farti sapere che il tuo codice potrebbe non funzionare come previsto. Certo, puoi metterli a tacere, ma in realtà non dovresti.

Gli avvisi e gli avvisi dovrebbero essere considerati come elementi per notificare il possibile codice buggato. Non ignorare il problema, risolvilo.

Se l'ambiente di sviluppo ignora veramente questi avvisi, come dici tu, allora questo è il primo problema che deve essere risolto: imposta il tuo livello di errore su E_STRICT|E_ALL durante lo sviluppo e visualizza gli errori.
Un avviso non è fatale, ma se si esegue questo codice in un ambiente di produzione, probabilmente riempirà i registri con confusione, e ciò influirà anche sulle prestazioni.
Tutto sommato: aggiungere un controllo isset non è troppo difficile. È solo che a volte è un po 'noioso ...

    
risposta data 06.08.2014 - 13:47
fonte

Leggi altre domande sui tag