dedlfix: Funktion mit IF-Anweisung

Beitrag lesen

Hi!

sorry, Klammerfehler. Die gesamte Bedingung muss in () eingeschlossen sein.
so habe ich es gemeint:
... 'foo', ($css_name == 's' || $css_name == 'w')?'aktiv':'passiv', 'bar' ...

Die Klammern schaden nicht, aber gemäß der Operatoren-Rangfolge sind sie in dem Fall nicht notwendig. Sowohl der Vergleich als auch die Verknüpfung mit || haben eine höhere Priorität als ?: Was anderes wäre es, wenn du or statt || genommen hättest, das kommt erst nach dem ?: und ergäbe am Ende ein boolsches Ergebnis, nämlich stets true, weil es wie folgt gelöst würde:

($css_name == 's') or (($css_name == 'w') ? 'aktiv' : 'passiv')

Bei $css_name == 's' kommt entweder true oder false raus, aber der zweite Teil liefert mit 'aktiv' oder 'passiv' immer einen Wert, der im boolschen Kontext zu true gecastet wird. Somit wäre das Ergebnis immer true.

Lo!