Steffi M.: Script ?

Hallo ich versuche gerade ein Script zu verstehen.
Kann mir jemand sagen was in dem untenstehenden Schnipsel das Fragezeichen soll?

$year2 = (!$year) ? $actualdate['year'] : sprintf("%04d", $year);

L.G. Steffi

  1. Hallo Steffi,

    Hallo ich versuche gerade ein Script zu verstehen.
    Kann mir jemand sagen was in dem untenstehenden Schnipsel das Fragezeichen soll?

    $year2 = (!$year) ? $actualdate['year'] : sprintf("%04d", $year);

    Das ist eine kurze Schreibweise fuer IF/ELSE.
    Bedeutet das gleiche wie:

    IF (!$year)
      $year2 =  $actualdate['year']
    ELSE
      $year2 = sprintf("%04d", $year);

    Sehr kurz beschrieben auf:
    http://www.php.net/manual/de/language.expressions.php
    (Code-Block "$eins ? $zwei : $drei", nach unten scrollen)

    HTH, mfg
    Thomas

    1. Hallo nochmal,

      Da ging doch glatt ein Semikolon ";" vergessen:

      $year2 = (!$year) ? $actualdate['year'] : sprintf("%04d", $year);
      Bedeutet das gleiche wie:

      IF (!$year)
        $year2 =  $actualdate['year'];

      /* hier: ^ */

      ELSE
        $year2 = sprintf("%04d", $year);

      Das ganze nochmals abstrakt:

      $a = $bedingung ? $x : $y

      entspricht

      IF ($bedingung)
         $a = $x;
      ELSE
         $a = $y;

      Die kurze Schreibweise macht den Code zwar kompakter,
      aber - wie Dein Beispiel zeigt - fuer "Fremde" und Anfaenger
      etwas schwieriger zu verstehen.

      mfg
      Thomas
        der erst jetzt auf die Idee kam, das nichtssagende Subject zu aendern.