Variabile valore predefinito, null vs stringa vuota vs false

4

Vorrei inizializzare le mie variabili nella parte superiore del mio file, per evitare qualsiasi avviso di Undefined variable . Ma cosa pensate sia considerato una best practice (in PHP), nel caso di una variabile di tipo stringa?

Inizializza la variabile con un valore false di default?

$variable = false;

O forse solo una stringa vuota

$variable = '';

O anche un valore nullo

$variable = null;
    
posta Erik van de Ven 25.01.2017 - 10:41
fonte

2 risposte

13

Se non hai un valore ragionevole per inizializzare la tua variabile con, allora non dovresti creare quella variabile in quel punto del tuo codice.

Se ti accorgi che stai usando una variabile non definita, allora è una chiara indicazione che hai un problema nel flusso del tuo programma. La corretta linea d'azione qui è quella di dare a quelle variabili un valore ragionevole prima di essere usate. Se un tale valore ragionevole non esiste, allora devi chiederti perché la variabile viene utilizzata in primo luogo.

Solo mascherare ciecamente le notifiche di Undefined variable non farà andare via il vero problema. L'avviso Undefined variable è solo un effetto collaterale di quel vero problema.

    
risposta data 25.01.2017 - 10:53
fonte
0

Avrei aggiunto un commento piuttosto che una risposta perché non conosco il php, ma non posso ancora farlo. Parlerò generalmente dall'esperienza con altre lingue. Il punto di inizializzazione di una variabile è che si desidera che abbia un valore predefinito, se non diversamente specificato. Se non esiste un valore predefinito utile dall'inizio e si preferisce indicare che non è stato ancora assegnato alcun valore, allora si utilizza un valore coerente.

Un vantaggio che vedo nella scelta di null su "" è che una stringa vuota è ancora una stringa valida, mentre null indica chiaramente che nessun valore è stato assegnato.

L'impostazione del valore su FALSE suona male per me, poiché ciò significherebbe persone che leggono il tuo codice che la variabile è un booleano, piuttosto che una stringa.

Qualunque cosa tu scelga, ricorda che alla fine si tratta di come usi la variabile. Cioè, se hai intenzione di avere un codice di gestione degli errori, quindi scegli i tuoi valori di conseguenza. Non dare per scontato che, poiché hai inizializzato la variabile, tutto andrà bene. Pensa sempre a tutti gli scenari e percorsi di codice e cosa succederebbe se il valore predefinito (inizializzato) fosse utilizzato.

Infine, se lavori in un team, controlla le linee guida dell'azienda o del team. È molto meglio quando tutti usano la stessa pratica, anche se non tutti sono d'accordo con tutto!

    
risposta data 25.01.2017 - 11:10
fonte

Leggi altre domande sui tag