dedlfix: 1: Instanzvariablen oder Funktionsparameter? 2: Überladene Funktionen?

Beitrag lesen

Tach!

Frage: wo verwende ich einen ternary operator und wo weniger?

Immer da, wo du abhängig von einer Bedingung einen von zwei unterschiedlichen Werten bekommen willst.
Nicht da, wo du abhängig von einer Bedingung zwei völlig verschiedene Anweisungen ausführen willst.

Hehe, in welche Kategorie falle ich hiermit?

$a = function () { /* Mach etwas völlig verschiedenes von $b */ };
$b = function () { /* Mach etwas völlig verschiedenes von $a */ };

($aOderB ? $a : $b)();

das ist klar Fall 1: Du willst einen von zwei Werten, wobei der Wert ein Funktionsobjekt ist, und die dadurch referenzierte Funktion dann aufrufen.

Der Teil nach dem "und", der Aufruf also, ist nicht mehr Bestandteil des vom ternären Operator berechneten Ausdrucks. Für den spielt nur der Inhalt des ersten Klammernpaares eine Rolle. Somit wird von ihm eindeutig eine von beiden Funktionsreferenzen zurückgegeben, also einer von zwei Werten. Damit fällt das Beispiel in die erste Kategorie.

Und normalerweise würde man den ternären Operator hier nicht benutzen, sondern eine herkömmliche, traditionelle if-Abfrage.

Da bin ich mir nicht sicher. Ein PHP-Programmierer, der eher kaum bis gar nicht funktionial programmiert, wird das vermutlich mit if machen. Der erfahrene Javascript-Programmierer hätte mit der funktionalen Weise keine Probleme, der kennt sowas beispielsweise von IIFE-Konstrukten.

dedlfix.