Frage zu Php was bedeutet dieses Fragezeichen (Siehe Bild)?
Was macht das?
danke im voraus

4 Antworten
Der ternäre Operator ist eigentlich zur Auswertung eines boolschen Ausdrucks gedacht. Je nachdem, ob dieser wahr (?) oder falsch (:) ist, kann ein entsprechender Wert zurückgegeben werden.
Bsp.:
$gerade = $zahl % 2 == 0 ? "gerade" : "ungerade";
Der mittlere Teil kann dabei auch weggelassen werden, dann ist der Rückgabewert entweder das Ergebnis des Ausdrucks oder der optionale Ausdruck.
In diesem Fall würde das Ergebnis also entweder 1 sein oder ungerade.
$gerade = $zahl % 2 == 0 ?: "ungerade";
Beachte aber, einen IF-Ersatz stellt dieser Operator nicht dar, dafür ist der Ausdruck nicht gedacht.
$zahl == 5 ? echo "wahr" : echo "falsch"; // falsch!
Auch, wenn in PHP so etwas funktionieren mag...
function a(){ echo "a"; }
function b(){ echo "b"; }
true ? a() : b();
Diese Notation ist die Kurzschreibweise von IF Verzweigung
IF dies THEN das ELSE was anderes
dies ? das : was anderes
also vor dem Fragezeichen kommt der boolische ausdruck
danach das was bei wahr passiert
und nach dem doppelpunkt dann das was bei falsch passiert.
(3+4 == 7 ) ? echo "richtig" : echo "falsch"
ich hab mal den syntax ausser acht gelassen
Der ternäre Operator ist kein Ersatz für IF-ELSE. Dein Beispiel ist ein mustergültiges Beispiel, welches eine Runtime Exception auslösen würde.
So wäre es hingegen richtig:
echo (3 + 4 == 7 ) ? "richtig" : "falsch";
Richtig, es ist ähnlich zu if-else aber es gibnt schon wichtige Unterschiede.
Bedingter Ausdruck bzw. Auswahloperator (ternary conditional).
Die Form ist dabei:
Audruck ? zutreffend : nichtzutreffend
Existiert in diversen Programmiersprachen, ist zwar praktisch, aber fördert nicht unbedingt die Lesbarkeit und Ausdrucksstärke. (Sonderfälle mal ausgenommen)
Das ist ein ternärer operator. Im prinzip wie ne if abfrage das ganze da
Also wenn die Bedingung vor dem Fragezeichen erfüllt ist, dann passiert das und das?