Andy: Dummiefrage: Wofür braucht man isset() eigentlich?

Hi,
nur mal so, weil ich's nicht verstehe?o)

Wofür taucht isset()?

Ich erlebe keinen Unterschied zwischen
if ($array) und if (isset($array))

Kann man sich isset schenken,
oder aus welchen Gründen (oder wofür sonst) nutzt man das?

Gruss, Andy

  1. Hi Andy,

    Wofür taucht isset()?

    Als ich den Titel las, dachte ich erst, du wolltest wissen, wozu man isset() brauche, wenn es doch empty() gäbe.

    Ich erlebe keinen Unterschied zwischen
    if ($array) und if (isset($array))

    Nun, wenn wir jetzt vielleicht nicht gerade ein Array haben, sondern eine Wert, der 0 oder 1 sein soll:

    $tu_dies_und_das = 0; //dies_und_das soll NICHT gemacht werden

    Jetzt wäre ein Unterschied zwischen:

    if($tu_dies_und_das)

    und

    if(isset($tu_dies_und_das))

    Letzteres wird immer wahr sein, da wir die Variable ja gerade oben initialisiert haben, ersteres wird allerdings nur wahr sein, wenn $tu_dies_und_das UNGLEICH 0 ist.

    Kann man sich isset schenken,
    oder aus welchen Gründen (oder wofür sonst) nutzt man das?

    Nein, wie du siehst, kann man sich das nicht, du kannst nämlich z.b. nicht überprüfen, ob $_POST Werte o.ä. da sind, falls für den Wert auch 0 ein zulässiger Wert ist.

    Genauso ist das übrigens auch mit empty, wenn der Wert einer Variable 0 ist, gibt empty auch false zurück.

    Ach ja, außerdem solltest du beim Entwickeln das Error_reporting auf E_ALL stellen, dann kriegst du auch ne Notice Meldung, wenn du auf eine Variable zugreifst, die nicht exisiert, z.B. mit if($var).

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
    Antworten per E-Mail gibts hier nicht!
    1. Hi Dennis,
      Danke geblickt !

      Ich sehe für mich persönlich zwar noch keinen Anwendungsfall,
      weil ich mit if ($ohneisset) ob der Wert existent oder ungleich 0 ist,
      aber es wird sicher Anwendungsgebiete geben.

      Vielleicht in Berechnungen
      oder um Artikel aus dem Warenkorb zu kriegen oder so ...

      Thanks, Andy

      1. Hi Andy,

        Ich sehe für mich persönlich zwar noch keinen Anwendungsfall,
        weil ich mit if ($ohneisset) ob der Wert existent oder ungleich 0 ist,
        aber es wird sicher Anwendungsgebiete geben.

        Ich habe z.B. gerade bzw. bin dabei ein Verwaltungscenter für eine Seite zu programmieren, da kann man dann diverse Sachen konfigurieren, die Werte werden dann in ner DB gespeichert.

        Viele Konfigurationen bestehen aus "ja" und "nein", für das ich 1 und 0 verwende. Beim Auslesen aus der DB und Weiterverarbeiten kann ich dann schon abfragen if($configuration_sowieso) ob ein bestimmter  Vorgang eingeleitet werden soll oder nicht, aber wenn ich die Konfiguration vom User emfpagen, muss ich sie natürlich auch prüfen, und da kann der Wert natürlich auch 0 sein.

        Vielleicht in Berechnungen
        oder um Artikel aus dem Warenkorb zu kriegen oder so ...

        Da natürlich auch, aber nicht nur da ;-)

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
        Interessiert in Modellbahn?
        Wie wärs mit http://www.go-modellbahn.de?
        1. Hi Dennis,

          Viele Konfigurationen bestehen aus "ja" und "nein", für das ich 1 und 0 verwende.

          Das wäre dann bei mir der else-Fall.

          Ich hab' gerade mal gespielt,
          der reagiert ja echt auf $array = "";

          Eigentlich wollte ich schreiben:
          Jou geil, ich erinner mich an eine Passage
          if (!$array) {
          $array = "0"
          }
          , das änder ich doch gleich mal ...

          Aber da brauch ich gesichert eine 0 als Wert,
          also änder ich besser doch nicht ...

          LG, Andy

          1. Das wäre dann bei mir der else-Fall.

            Wenn Du nur abfragst

            if ($a=="xy"){...}
            else{...}

            wird Dir eine Fehlermeldung erscheinen sofern $a nicht bekannt ist ("undefined variable ..."). Daher muss man dafür ein if( isset($a) ){..} machen.

    2. Hello Dennis,

      Genauso ist das übrigens auch mit empty, wenn der Wert einer Variable 0 ist, gibt empty auch false zurück.

      Ich weiß zwar, dass Du das richtige gemeint hast, aber der Ordnung halber:

      empty($wert) gibt true zurück, wenn
          $wert == 0 oder
          $wert == '' oder
          $wert == false oder
          $wert == NUL ist

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
  2. Hallo Andy,

    Ich erlebe keinen Unterschied zwischen
    if ($array) und if (isset($array))

    dann stell mal error_reporting() auf E_ALL - dann wirst du von php eine Meldung bekommen wenn $array nicht gesetzt ist.

    Grüße aus Nürnberg
    Tobias

  3. Ich erlebe keinen Unterschied zwischen
    if ($array) und if (isset($array))

    Hausaufgabe: Was kommt denn hierbei raus und warum?

    echo ($array) ? 'ja' : 'nein';
    echo '<br>';

    $array = array();
    echo ($array) ? 'ja' : 'nein';
    echo '<br>';

    $array[] = 42;
    echo ($array) ? 'ja' : 'nein';