Hallo Struppi,
$bedingung
? print 'alles'
: print 'nix';
> > funktioniert ja auch. (Aber da gehts nicht um Zuweisungen...)
>
> Auch das geht einfacher
> ~~~perl
> print $bedingung ? 'alles' : 'nix';
>
Dass das einfacher geht, ist mir schon klar. Es sollte nur ein Beispiel sein, dass es manchmal auch so funktioniert, wie ich es mir dachte.
Wie gesagt du solltest diesen Operator nicht als if else Mißbrauchen.
Das ist schade, denn das wäre doch mal eine schöne Abkürzung gewesen. So verschwende ich zwei Zeilen für geschweifte Klammern :)
Würde man die Sachen nach dem '?' bzw. ':' als Anweisungen interpretieren, würde sich doch am bisherigen nichts ändern. Man kann ja "return $var;" auch zu "$var;" abkürzen, weil eben dann der Variablenwert zurückgegeben wird. Und das wäre bei
$wert = ($bed) ? $var1 : $var2;
ja auch nicht anders. Führe '$var1' als Anweisung aus, dann kommt eben nur der Wert zurück, und alles passt.
Das ist es, was ich nicht verstehe, aber nun akzeptiere und brav if-else schreibe :)
Grüße
Chris