dedlfix: Syntaxabkürzung

Beitrag lesen

Hi!

echo $var1=="Hund"?"Frisst Knochen":"Frisst Fisch";
Vermute, dass die Klammern um $var1=="Hund" dringend gebraucht werden.

Das Handbuch-Kapitel zu den Operatoren gibt auch hier die Antwort, nämlich im Abschnitt Operator Precedence (Rangfolge). Die Vergleichsoperatoren, wozu auch == gehört, sind stärker als ?:, die Klammern sind also nicht erforderlich.

Generell müssen die Klammern nicht gesetzt werden, wenn die Operatoren-Rangfolge der gewünschten Abarbeitungsreihenfolge entspricht. Sie trotzdem zu setzen, kann helfen die eigene Intention deutlicher sichtbar zu machen. Damit fällt dann bei einer Code-Durchsicht die Beantwortung solcher Fragen einfacher: "Hat er nun die Operatorenreihenfolge beachtet und den Ausdruck bewusst so hingeschrieben oder ist das ein Fehler und es hätte geklammert werden müssen?"

Lo!