2010-01-01 19 views
5

Entrambi garantiranno che $ var è un valore booleano, ma quest'ultimo sembra più chiaro. Il doppio punto esclamativo (!!) è più breve da digitare ma meno chiaro e più probabilmente causa di confusione. Per non parlare di eseguire una ricerca per ottenere risposte.

Il doppio punto esclamativo è qualcosa che ho sentito solo in JavaScript, che non ha un typecasting booleano. È normale vederlo anche in PHP?

risposta

3

Nessuno di questi è comune in PHP perché non sono necessari.

Se si può fare !!, si può altrettanto bene usarlo in cui è necessaria un'espressione booleana (while, if, &&, etc.).

+0

Sto facendo sth sbagliato, o 'echo' non produce alcun risultato su quello in php? – loveNoHate

4

Questo è valido in JavaScript, anche se non è tecnicamente un "cast", si ottiene lo stesso effetto:

var booleanValue = Boolean(otherValueType); 

Ciò equivale a:

var booleanValue = !!otherValueType; 

Trovo è bene fare questo quando si elaborano i parametri in entrata, per chiarire che si intendeva che un valore fosse un booleano. Quando si controlla la "verità", non è necessario digitare in PHP o JavaScript. Ricorda che una stringa vuota è equivalente a false in PHP e true in JavaScript.

Quindi, per rispondere alla tua domanda, o va bene in entrambe le lingue, è semplicemente una scelta di stile personale.