PI: Eckige Klammern ohne Anführungszeichen?

Hallo Leutchen

Ich habe schon ein paar Mal gesehen, dass in einer PHP Date sowas wie

$var[index] gestanden ist.

Scheinbar hat alles funktioniert und es war auch richtig, aber müsste es nicht eigentlich

$var['index']

heissen?

Wrum handelt es sich bei dem Teil ohne Anführungszeichen, was bringt das, wo nutzt man das am besten?

  1. Hallo!

    aber müsste es nicht eigentlich

    $var['index']

    heissen?

    Ja, müßte es.

    Wrum handelt es sich bei dem Teil ohne Anführungszeichen,

    Weil der Programmierer geschlampt hat.

    was bringt das,

    Gar nichts. Wenn Du beispielswiese

    $a = computer;

    schreibst, dann sucht PHP zuerst nach einer Konstante mit dem Namen computer. Falls diese existiert, wird der Wert dieser Konstante genommen. Falls die Konstante nicht existiert, nimmt PHP einfach das, was dort steht. Also steht in diesem Fall in der Variable $a eine Zeichenkette 'computer'.

    Folglich ist $var[index] das gleiche wie $var['index'] - SOLANGE keine Konstante mit dem Namen index definiert ist. Und genau das ist der Knackpunkt, denn wenn jemals eine solche Konstante definiert sein sollte, wird ihr Wert genommen und nicht das, was einfach so dort steht. Daher sollte man das tunlichst vermeiden.

    wo nutzt man das am besten?

    Gar nicht.

    Viele Grüße,
    Christian

    1. Hi,

      mit Anführungszeichen ist auf jeden Fall besser.

      Hatte vorher immer ohne programmiert (weil ich es nicht besser wußte, und es immer geklappt hat). Jetzt habe ich eine neue PHP Version (4.3.x) und es gibt nur Fehlermeldungen!

      Gruß
      Christian

      1. Hallo Christian,

        und es gibt nur Fehlermeldungen!

        Nein, es gibt Hinweise auf das mögliche Problem. Du hast Deine Fehleranzeige anscheinend auf E_ALL gestellt, das E_NOTICE beinhaltet. Du könntest es zwar mit error_reporting = E_ALL & ~E_NOTICE in der php.ini ausschlaten, es ist für die Entwicklung durchaus sinnvoll, da solche Hinweise Bugs vorbeugen.

        Viele Grüße,
        Christian

    2. Danke, aber was ist jetzt eine Konstante?

      Was bringt die, was macht die?

      1. Hallo,

        1. Kauf dir ein gutes PHP Buch.
        2. Lies wenigstens ein gutes online Handbuch
        3. Schau auf http://www.php.net, ist immer hilfreich
        4. http://at.php.net/manual/de/language.constants.php

        gruß,
        Severin

        --
        Realität ist das, was nicht verschwindet, wenn man aufhört, daran zu glauben.
        --Philip K. Dick
      2. Nolimetongere,

        Danke, aber was ist jetzt eine Konstante?

        http://de.php.net/manual/de/language.constants.php

        Zebulon
        The Interim Polytoximonium

        --
        <img src="http://www.dmp-web.de/xCell/zebulon.jpg" border="0" alt="">
        [bitte bitte weg mich nicht -
        so lang ich träume gibts nur mich]
      3. hi,

        Danke, aber was ist jetzt eine Konstante?
        Was bringt die, was macht die?

        zum beispiel darfst du die annahme, dass hier immer wieder fragen gestellt werden, ohne dass der fragesteller zuvor auch nur ansatzweise versucht hat, selbst eine antwort zu finden, gern als eine art "konstante des selfforums" betrachten.
        hier findest du solch ein beipsiel, [pref:t=52659&m=290623].

        gruss,
        wahsaga