Ankündigung

Einklappen
Keine Ankündigung bisher.

Variablendeklaration ungewöhnlich freizügig in PHP?

Einklappen

Neue Werbung 2019

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

  • Variablendeklaration ungewöhnlich freizügig in PHP?

    Schön, dieser Anfängerbereich - da kann man auch mal richtig peinliche Fragen stellen die auch im Anfängerbuch nicht beantwortet werden...wie ....

    warum ist in PHP keine Variablendeklaration erforderlich - ein Schreibfehler und man hat eine neue Variable geschaffen.
    Selbst in VBA hat man das option explicit um sich vor solchen Fehlern zu schützen indem eine Variablendeklaration erzwungen wird. Ist das noch zeitgemäß?
    Oder gibt es doch ein "work arround"
    Danke

  • #2
    Deklarationen sind in den meisten Sprachen ja meistens nur notwendig, um dem Kompiler mitzuteilen um welchen Datentyp es sich handelt. Da PHP aber eine typenlose Sprache ist, bzw. den Typ einer Variable selbstständig erkennt, ist eine Deklaration nicht notwendig. Ich denke dies liegt an der Geschichte von PHP, PHP wurde als Template Sprache entwickelt, dort sind explizite Deklarationen und festlegen auf Datentypen eher von Nachteil.

    Jede vernünftige IDE sollte dir aber ohne Probleme anzeigen, wenn du eine Variable benutzt, welche vorher nicht initialisiert worden ist. Daher sehe ich das in PHP eher als Vorteil statt als Nachteil.

    Kommentar


    • #3
      Vielleicht noch interessant sind die folgenden Artikel in der Wissensammlung
      Was ist PHP
      Erzwinge die Fehlerausgabe

      Kommentar


      • #4
        Zitat von synonym Beitrag anzeigen
        warum ist in PHP keine Variablendeklaration erforderlich - ein Schreibfehler und man hat eine neue Variable geschaffen.
        Ist in PHP leider so und bei weitem nicht das einzige Problem was soliden Code mit PHP schwer macht. (Das bringt in manchen Situationen natürlich auch Vorteile.) Beim Entwickeln kannst du das Error Reporting hochdrehen. Damit bekommst du zur Laufzeit zumindestens E_NOTICEs angezeigt, wenn du lesend auf undefinierte Variablen zugreifst.(siehe protestix) Leider gilt das nicht für Schreibzugriffe:

        PHP-Code:
        $blub 1;
        $bulb $blub 3//sollte $blub sein

        echo $blub
        Hier hilft nur eine bessere IDE, die dir anzeigt, dass $bulb nicht verwendet wird.

        Zitat von Zeichen32 Beitrag anzeigen
        Ich denke dies liegt an der Geschichte von PHP, PHP wurde als Template Sprache entwickelt, dort sind explizite Deklarationen und festlegen auf Datentypen eher von Nachteil.
        Die Geschichte von PHP findest du da: http://de1.php.net/manual/de/history.php.php

        Kommentar


        • #5
          Eclipse reagiert auf $bulb nicht, schau mir aber die Möglichkeiten vom Error Reporting an. Ist aber nett, dass Schwachstellen gegenüber einem Anfänger nicht schön geredet werden sondern ehrlich benannt werden. Das bringt einen weiter und andere Sprachen sind ja auch nicht perfekt! Danke

          Kommentar

          Lädt...
          X