Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Verwendung von isset()

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Verwendung von isset()

    Hallo,

    in folgendem Skript wird der Text ausgegeben, was ich nicht verstehe.

    PHP-Code:
    <?php
    $arr 
    = array('index' => 'oiadj foasjd foaj eorjf oeirj adsf');
    if (isset(
    $arr['index']['blabla'])) {
        echo 
    "Warum wird dieser Text ausgegeben?\n";
    }
    ?>
    Gibt es irgendwo in den Dokumentationen eine Aussage, die besagt oder aus der folgt, dass isset($arr['index']['blabla']) zu "wahr" ausgewertet wird? Auf PHP: isset - Manual habe ich auch in den Benutzerkommentaren nichts eindeutiges gefunden.

    Schöne Grüße.


  • #2
    Klar, wenn dein Array einen Index Hat, der index heißt, und der ein Array als Value hat, das einen Index hat namens blabla hat

    Nachtrag:
    PHP-Code:
    <?php
    $arr  
    = array('index' => 'oiadj foasjd foaj eorjf oeirj adsf'); 
    $arr2 = array('index' => array('blabla' => 'oiadj foasjd foaj eorjf oeirj adsf')); 

    var_dump(isset($arr['index']['blabla']));  # Result: false
    var_dump(isset($arr2['index']['blabla']));  # Result: true
    "My software never has bugs, it just develops random features."
    "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

    Kommentar


    • #3
      Auf PHP: isset - Manual habe ich auch in den Benutzerkommentaren nichts eindeutiges gefunden.
      Ich schon: PHP: isset - Manual
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        Vielen Dank für die Antworten. Das ging ja extrem schnell.

        @Paul.Schramenko:
        Hast du dein Skript mal ausprobiert? Die Ausgabe von deinem Skript entspricht nämlich nicht deiner Vermutung. Dein Skript gibt
        Code:
        bool(true)
        bool(true)
        aus. Meine Frage war ja nicht, "wann" der Text in meinem Skript ausgegeben wird, sondern "warum". Da bist du nun auch überrascht, oder?

        @nikosch
        Ich schaue mir das an.

        Kommentar


        • #5
          Ja ich hatte auch die arr2 vergessen gehabt. probiers jetzt nochmal aus
          "My software never has bugs, it just develops random features."
          "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

          Kommentar


          • #6
            Ich sehe keine Änderung. Zur Klarstellung: Wir haben folgendes Skript:

            PHP-Code:
            <?php
            $arr  
            = array('index' => 'oiadj foasjd foaj eorjf oeirj adsf'); 
            var_dump(isset($arr['index']['blabla']));
            ?>
            Dieses Skript erzeugt folgende Ausgabe:

            Code:
            bool(true)
            Wenn ich dich richtig verstanden habe, dann bist du davon ausgegangen, dass "false" ausgegeben wird. Das war auch meine Annahme. Die Annahme ist aber offenbar falsch.

            Ich schaue mir noch die Sache mit dem "type juggling" an.

            Kommentar


            • #7
              Bitte vorher mal ausprobieren: Das Ergebnis bleibt das Gleiche und klärt die Frage des TEs immer noch nicht. Die Erklärung steht im Kommentar, den nikosch verlinkt hat.
              http://hallophp.de

              Kommentar


              • #8
                Das ist zugegeben eine echt ungünstige Falle, über die man oft stolpert. Einfach merken: In Zweifelsfällen lieber immer array_key_exists benutzen.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Sorry mein Fehler, war mir fast sicher ich hätte sowas mal benutzt. SRY nochmal
                  "My software never has bugs, it just develops random features."
                  "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                  Kommentar


                  • #10
                    Super, ich habe das nun verstanden. Vielen Dank euch Drei für die Kommentare zu meiner Frage. Ein schönes Wochenende wünsche ich.

                    Kommentar

                    Lädt...
                    X