Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Assoziative Arrays - Key in Hochkommata oder nicht?

Einklappen

Neue Werbung 2019

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

  • Wolla
    hat ein Thema erstellt [Erledigt] Assoziative Arrays - Key in Hochkommata oder nicht?.

    [Erledigt] Assoziative Arrays - Key in Hochkommata oder nicht?

    Guten Tag zusammen,

    ich möchte gerne wissen, welche der folgenden Schreibweisen "richtiger" ist bzw. empfohlen wird:

    PHP-Code:
    <?php

    $sql 
    "SELECT name FROM kunden WHERE id=4711";
    $erg mysql_query($sql);
    $row mysql_fetch_array($erg,MYSQL_ASSOC);

    $name $row[name];  // Ist das ausreichend?
    $name $row['name']; // Ist es besser, Hochkommas zu verwenden
    $name $row["name"]; // oder besser Doppelte Hochkommas ?

    ?>
    Beim Lesen von fremdem Code sind mir alle Schreibweisen begegnet, und alle scheinen gleich gut zu funktionieren. Die erste Schreibweise erscheint mir aber unlogisch. Was also ist richtig bzw. besser.

  • Manko10
    antwortet
    Das Verwenden nicht definierter Konstanten hat übrigens auch eine Notice zur Folge.
    Also ich würde an deiner Stelle möglichst Single-Quotes (') nehmen und wenn Variablen drin vorkommen können/sollen, Double-Quotes("). Das bringt keinen direkten Vorteil, aber PHP durchsucht Single-Quotes nicht nach Variablen.

    Einen Kommentar schreiben:


  • Wolla
    antwortet
    Nochmals danke für die Erklärung und auch für den Link. Manchmal weiß man nicht, mit welchem Begriff man wo suchen soll.
    Ich markiere das dann mal als erledigt.

    Einen Kommentar schreiben:


  • Normalo
    antwortet
    Wörter ohne Hochkomma werden als Konstante interpretiert. Wenn eine Konstante jedoch nicht existiert, wird die Konstante mit ihrem eigenen Namen ersetzt. Dieses Verhalten kann PHP in jeder neuen Version ändern, so dass man sich nicht darauf verlassen sollte. Auch unter dem Aspekt der Wartbarkeit gaukelt man einem anderen Entwickler eine Konstante vor, die gar nicht existiert.

    Einen Kommentar schreiben:


  • David
    antwortet
    PHP: Arrays - Manual
    Why is $foo[bar] wrong?

    Always use quotes around a string literal array index. For example, $foo['bar'] is correct, while $foo[bar] is not. But why?

    Einen Kommentar schreiben:


  • Wolla
    antwortet
    Dankesehr.

    Ich dachte mir schon, dass die erste Schreibweise nur zufällig funktioniert und werde sie vermeiden.

    Einen Kommentar schreiben:


  • Normalo
    antwortet
    Bei einem assoziativen Array bestehen die Schlüssel aus Strings, demnach ist die Schreibweise ohne Hochkomma falsch, funktioniert aber durch die Gutmütigkeit von PHP.
    Des Weiteren besteht der Unterschied zwischen einfachen und doppelten Hochkommas darin, dass einfache nicht nach Variablen und Escapesequenzen (mit zwei Ausnahmen) durchsucht werden.
    Code:
    $variable = 'hallo';
    // Verhalten:
    'bla' == 'bla'
    'bla$variable' == 'bla$variable'
    "bla$variable" == 'blahallo'
    So verhält sich das auch bei Indexen assoziativer Arrays. Da einfache Hochkommas nicht geparst werden, ist bei deren Verwendung die Performance minimal höher.

    Einen Kommentar schreiben:

Lädt...
X