Hoku: Deklarierung von Zählvariablen.

Hi,

die Variablen $i,$j,$k dienen ja oft als Zählvariablen in Schleifen,etc.

Warum ist es nicht nötig diese vor Gebrauch mit var $i zu deklarieren?

Danke

  1. Hallo,

    in einer for-Schleife ist die Syntax nun mal so vorgegeben, das eine Zählvariable als erstes Verlangt wird, daß heißt da wird sie auch deklariert.

    for ($i=0;.....)

    Bei einer while-Schleife muss die Zählvariable vorher deklariert worden sein, sonst passiert garnix.

  2. Hi,

    bei einer for-schkleife wird die Variable in der Schleife selbst definiert, zum Beispiel so:

    <?php
        for($i=0; $i<5; $i++)
        {
            echo("Die Zahl ist ".$i."<br />\n");
        }
    ?>

    (..) for($i=0; (..) <- hier wird deklariert

    MfG
    Daniel

  3. Hallo,

    PHP verwendet die implizite Variablendeklaration mit automatischer Typbestimmung. Das bedeutet: wenn ein Bezeichner für eine Variable das erste mal auf der linken Seite benutzt wird, dann wird er automatisch mit dem Typ Variant und dem Wert false angelegt. Durch Zuweisung eines Ergebnisses von der rechten Seite des Terms nimmt er den Typ des Ergebnisses an.

    Wenn man nun einen bestimmten Typ als Ergebnis haben will, sollte man die Variable vorher mit dem neutralen Wert des Typs initialisieren (wenn es einen gibt). Dann versucht PHP das Ergebnis der Operation in diesen Typ zu überführen. Das klappt bei PHP ziemlich gut.

    Es empfhielt sich für längere Scripte (so ab 1000 Zeilen) folgende Regeln zu beachten:

    1. verwende so wenig wie möglich Gloabalvariablen, mit Ausnahme der Superglobalen, deren Verwendung ohnehin festgelegt ist.

    2. Bilde Funktionen mit eindeutigen Übergabeparametern und Rückgabewerten. Die einzigen Kapselungen die PHP kennt, ist durch Scriptgrenzen und darin Funktionen beschrieben. Also man kapselt durch Aufteilung in mehrere Scripte un innerhalb der Scripte durch Funktionsbildung.

    3. Trenne Initialisierungsbereiche (auch includes), Berechnungsbeeiche, Variante Operationen (das sind optional dazugeladenen Funktionen mitten im Script) und Ausgabebereiche (HTML) sauber voneinander. Lass Nie ein Script ohne eine gültige HTML-Antwort enden. Die Funktion die(), die immer so gerne eingesetzt wird, erzeugt keine gültige HTML-Seite und ist daher eigentlich nur für Testzwecke geeignet.

    Grüße

    Chris©