EisFuX: ternärer Operator, Konditionaloperator, ?:

Beitrag lesen

(Hallo|Hi(ho)|Tag) bleicher,

Grüße,

$x = empty( $_GET['y'] ) ? "0" : $_GET['y'];

oops.. die (? "0") sagen mir nix.. im welchem php.net abteil habe ich das nachzuschlagen/wie nennt sich das?

Konditionaloperator, im PHP-Handbuch heißt er ternärer Operator, wird dort
aber etwas stiefmütterlich behandelt.
Er ersetzt eine einfache if-else-Sequenz mit Zuweisung zu einer Variablen.
Aus "$x = empty( $_GET['y'] ) ? "0" : $_GET['y'];" wird

  
if ( empty( $_GET['y'] ) ) {  
  $x = "0;  
}  
else {  
  $x = $_GET['y'];  
}  

oder anders ausgedrückt:

  
$x = wenn_das_hier_zutrifft  
  ? übergib_diesen_wert_an_$x  
  : wenn_nicht_übergib_diesen_wert_an_$x;  

Die if-else-Sequenz ist übrigens etwas schneller in der Ausführung --
zumindest hat das mal ein Test, den ich vor längerer Zeit gemacht hatte,
so ergeben (PHP5).

(srry n000000b :()

Hey, den Operator gibts aber auch in anderen Sprachen:
en.wikipedia.org/wiki/?:

  
...  
$bestellung = is_true($durst)  
  ? "Noch 'n Bier!"  
  : "Ich möchte zahlen";  
  
$ober->anquatschen($bestellung);  
...  

MffG
EisFuX