2010-01-01 15 views
5

Beide werden sicherstellen, dass $ var ein boolescher Wert ist, aber letzteres scheint klarer zu sein. Das doppelte Ausrufezeichen (!!) ist kürzer, aber weniger klar und eher verwirrend. Ganz zu schweigen von der Suche nach Antworten.

Das doppelte Ausrufezeichen ist etwas, von dem ich nur in JavaScript gehört habe, das keine boolesche Typumwandlung hat. Ist es normal, dass es auch in PHP verwendet wird?

Antwort

3

Keine von diesen ist in PHP üblich, weil sie unnötig sind.

Wenn Sie !! tun können, können Sie genauso gut es verwenden, wo ein boolescher Ausdruck erforderlich ist (while, if, &&, etc.).

+0

Mache ich etwas falsches oder gibt 'echo' kein Ergebnis in PHP? – loveNoHate

4

Dies gilt in JavaScript, die aber nicht technisch ein "cast", erreicht sie die gleiche Wirkung:

var booleanValue = Boolean(otherValueType); 

Dies entspricht:

var booleanValue = !!otherValueType; 

Ich finde es gut zu tun dies bei der Verarbeitung eingehender Parameter, um zu verdeutlichen, dass ein Wert ein boolescher Wert sein soll. Wenn Sie nach "Wahrheit" suchen, müssen Sie weder PHP noch JavaScript eingeben. Denken Sie daran, dass eine leere Zeichenfolge in JavaScript false in PHP und true in JavaScript entspricht.

Also, um Ihre Frage zu beantworten, ist entweder in beiden Sprachen gut, es ist einfach eine persönliche Stilwahl.