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

Beitrag lesen

Tach!

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

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

In die Kategorie der Unerfahrenen.

Das ist eher deine Kategorie.

$aOderB ist nicht vorbelegt, einer der unverzeihlichsten Fehler die garantiert Probleme auslösen

Man kann in dem Beispiel davon ausgehen, dass $aOderB in diesem booleschen Kontext einen ebensolchen Wert erzeugt.

und dass Funktionsdefinitionen Codereferenzen erzeugen, die grundsätzlich und völlig egal von dem was eine Funktion tut immer wahr sind im boolschen Sinne, sollte sich auch irgendwann mal rumsprechen.

Kann vielleicht sein, aber von den drei Werten $aOderB, $a und $b wird nur $aOderB, sprich: der Wert vor dem ?, nach Boolean konvertiert (falls es kein Boolean ist). Die beiden Werte vor und nach dem : werden zwar ausgewertet, aber dessen Ergebnis ohne weitere Konvertierung zurückgegeben. Somit ist das Ergebnis des ersten Klammernpaares dieses Beispiels eine Funktionsreferenz und kein boolescher Wert. In welchen booleschen Wert Funktionsreferenzen konvertiert werden, spielt in dem Beispiel keine Rolle.

dedlfix.