Ankündigung

Einklappen
Keine Ankündigung bisher.

Array-Elemente

Einklappen

Neue Werbung 2019

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

  • Array-Elemente

    Hallo,

    erstmal ein netter Gruß in die Runde, erstes mal hier.

    Mir ist beim Umgang mit PHP etwas komisches aufgefallen und wollte nachfragen, was es damit auf sich hat. Es fiel mir etwas schwer, dieses Problem in der Suche näher zu beschreiben bzw. zu finden.

    PHP-Code:
    $tmp = array(=> "value");
    if (isset(
    $tmp[0]["dummy"])) echo "exist: ".$tmp[0]["dummy"];
    else echo 
    "not exist";
    print_r($tmp);
    // Output:
    // exist: v
    // Array ([0] => value) 
    Obwohl die Eigenschaft "dummy" nicht existiert, wird sie als gefunden definiert. Komischerweise wird dann auch noch der erste Buchstabe der zuletzt vorhandenen Eigenschaft zurückgegeben.

    Wie kann ich denn nun sicherstellen, ob eine Eigenschaft existiert oder nicht?

    Gruß
    Juu

  • #2
    In der Doku zu isset ist ein user-Kommentar dazu:

    Zitat von alexander dot holmback at gmail dot com, 23-Mar-2009 10:48
    <?php
    $abc = 'test';
    ?>

    $abc is not an array, but you can use the brackets to reach a single byte in the string using numbers.

    <?php
    $abc[0] = 't' //first letter in 'test'
    $abc[1] = 'e' //second letter in 'test'
    $abc[2] = 's' //third letter in 'test'
    $abc[3] = 't' //fourth letter in 'test'
    ?>

    When using $abc['astring'], php will cast any string to 0 (see type juggling) which result in the letter 't' which indeed is set.

    isset($abc['astring'] = isset($abc[0]) = true.
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Mhh, dass
      When using $abc['astring'], php will cast any string to 0
      ist ja doof. Wofür genau diese Stelle sinnvoll sein soll, keine Ahnung.

      Naja, dann sollte man wohl mit @array_key_exists(key,$array) überprüfen.

      Kommentar


      • #4
        Ja. Aber ohne das @
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar

        Lädt...
        X