Ankündigung

Einklappen
Keine Ankündigung bisher.

Array-Elemente

Einklappen

Neue Werbung 2019

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

  • Juu
    hat ein Thema erstellt Array-Elemente.

    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

  • nikosch
    antwortet
    Ja. Aber ohne das @

    Einen Kommentar schreiben:


  • Juu
    antwortet
    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.

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X