Qual è la differenza tra if ('' == $ variabile) e if ($ variabile == '') [duplicato]

2

Mentre usi un'istruzione 'if' per verificare se una variabile è una stringa vuota o no, possiamo scriverla in due modi, ad esempio if ('' == $ variabile e se ($ variabile == '') . Voglio sapere qual è l'impatto di sopra in diversi casi?

Grazie in anticipo !!

    
posta Pramod Kumar 18.09.2014 - 06:26
fonte

2 risposte

11

In una lingua moderna, dovresti scrivere le condizioni della forma if($variable == "") . Ciò facilita la lettura delle condizioni per i parlanti in inglese naturale.

In un linguaggio legacy, a volte era considerato una buona pratica utilizzare il formato if("" == $variable) come se si usasse il modulo più naturale che fosse possibile creare codice compilabile e eseguibile che fosse stato infettato se si per sbaglio avesse perso uno dei '= 'simboli.

Ora, la maggior parte dei compilatori, anche per queste lingue più vecchie, ti avviserà almeno se per caso perdi il simbolo "=".

TL; DR; - usa if($variable == "")

    
risposta data 18.09.2014 - 06:33
fonte
6

Questo dipende molto dalla lingua utilizzata!

Se == è implementato come metodo in un linguaggio orientato agli oggetti, il costrutto if ($variable == "") potrebbe portare a un'eccezione perché l'oggetto ( $variable ) potrebbe non essere inizializzato o anche null .

Se inverti l'espressione ( if ("" == $variable) ), puoi essere certo che l'oggetto ha funzionato ( "" è sempre inizializzato e mai null ).

Come esempio in Java (dove il metodo è chiamato .equals() ):

string.equals("")

può causare un NullPointerException perché l'oggetto string può essere null .

"".equals(string)

non può portare a NullPointerException poiché l'oggetto "" non è mai null .

Se == non è un metodo di un oggetto, non importa quale sia l'ordine utilizzato.

Penso che molti programmatori con uno sfondo simile usino l'espressione if ("" == $variable) perché hanno più familiarità con esso.

    
risposta data 18.09.2014 - 07:35
fonte

Leggi altre domande sui tag