Frank Hoppe: Syntax Frage

Hallo,

ich habe eine Frage zur Syntax, ich habe schon ein paar Erfahrungen mit PHP gesammelt aber nun finde ich eine Syntax mit der ich nichts Anfangen kann die steht auch in meinem PHP Buch nicht.

$start = (isset($start)) ? abs((int)$start) : 0;

Für was steht das Fragezeichen (?) und wieso steht dort der Doppelpunkt(:)

Gruß aus Paderborn

  1. yo,

    programmierer sind von hause aus faul. das ist im prinzip eine verkürzte form der if/else schreibweise.

    auf die schnelle bin ich mir nicht sicher, aber das ? leitet wohl die beiden auswahlen ein und das : wiederum trennt die beiden möglichkeiten voneinander.

    Ilja

  2. abend,

    $start = (isset($start)) ? abs((int)$start) : 0;

    bedeutet:
    if( isset($start) )
     $start = abs((int)$start)
    else
    $start = 0

    mfg,
    (tanz das)
    Z.N.S.

    --
    <img src="http://www.dmp-web.de/comunicout/neubauten.gif" border="0" alt="">
  3. Hi,

    $start = (isset($start)) ? abs((int)$start) : 0;

    $start = (existiert_$start)? bedingung_trifft_zu_anweisung : bedingung_trifft_nicht_zu_anweisung;

    Gruesse  Joachim

  4. Huhu Frank

    Für was steht das Fragezeichen (?) und wieso steht dort der Doppelpunkt(:)

    Das nennt sich ternärer Operator, such mal bei einschlägigen Suchmaschinen danach.

    Das Schema ist dabei wie folgt

    $v = (boolscher Ausdruck) ? (Ergebnis wenn Ausdruck wahr(true) ist) :(Ergebnis wenn Ausdruck unwahr(false) ist);

    Es kann die Sache deutlich übersichtlicher machen, wenn man das Statement auf mehrere Zeilen verteilt, also z.B.

    $start = isset($start)
             ? abs((int)$start)
             : 0;

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
  5. Hallo,

    $start = (isset($start)) ? abs((int)$start) : 0;

    http://www.php.net/manual/de/language.operators.comparison.php
    "der '?:'- oder Trinitäts-Operator"
    "the '?:' (or ternary) operator"

    http://www.php.net/manual/de/language.expressions.php
    "dreifach konditionalen Operator"
    "the ternary conditional operator"

    Gruesse,

    Thomas

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
    Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/