Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Variablendeklaration in PHP

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Variablendeklaration in PHP

    Hallo

    Obwohl ich schon einige Jahre als Entwickler tätig bin, gehöre ich erst recht kurz zu den PHP-Entwicklern. Leider tappe ich hier und da 'gerne' in die Falle der falsch geschriebenen Variablennamen.

    Daher meine Frage: Gibt es eine Option, die eine Variablendeklaration erforderlich macht? Dies bin ich von anderen Entwicklungssystemen gewöhnt und befürworte das durchaus.

    Gruß, Karl

  • #2
    Gibt es eine Option, die eine Variablendeklaration erforderlich macht?
    Leider nein.
    Dies bin ich von anderen Entwicklungssystemen gewöhnt und befürworte das durchaus.
    Was hindert dich daran, alle Variablen am Anfang des Scriptes zu initialisieren?

    Gruß
    phpfan

    Kommentar


    • #3
      Arbeite mit Klassen

      Denn Eigenschaften von Klassen müssen deklariert sein

      Ansonsten wüsste ich keine Möglichkeit
      Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

      Kommentar


      • #4
        Daran hindet mich nichts:

        $aButton = array()

        Aber leider auch nichts ein paar Zeilen weiter zu schreiben:
        $aButon[0] = ...;

        Hat mich gestern mehr als eine Stunde gekostet...

        Gruß, Karl

        Kommentar


        • #5
          Das ist meiner Meinung nach einer der größten Schwachpunkte von PHP. Man kann mit Variablen jonglieren, das ist schon nicht mehr schön. Wenn man mal sowas wie C/C++ gelernt hat, lernt man die Deklartion von Variablen zu schätzen. Hier und da hilft es, wenn man im Script die Zeile
          PHP-Code:
          error_reporting(E_ALL); 
          an den Anfang einträgt, dann bekommt man zumindest den ein oder anderen Hinweis.

          Gruß
          phpfan

          Kommentar


          • #6
            Ja... sowas wie strict, welches ich von Perl her benutze, wär inPHP durchaus nicht schlecht...

            Gruß,
            Andreas

            Kommentar


            • #7
              Schalte unbedingt auch Hinweise ein wie phpfan schon vorgeschlagen hat. Da siehst du sofort, wenn du vergessen hast eine Variable zu deklarieren.

              Kommentar


              • #8
                Zitat von phpfan
                Das ist meiner Meinung nach einer der größten Schwachpunkte von PHP. Man kann mit Variablen jonglieren, das ist schon nicht mehr schön. Wenn man mal sowas wie C/C++ gelernt hat, lernt man die Deklartion von Variablen zu schätzen. Hier und da hilft es, wenn man im Script die Zeile
                PHP-Code:
                error_reporting(E_ALL); 
                an den Anfang einträgt, dann bekommt man zumindest den ein oder anderen Hinweis.

                Gruß
                phpfan
                Ist das nicht das selbe das man schon in der php.ini eingestellt hat?
                Code:
                   error_reporting  =  E_ALL & ~E_NOTICE
                Oder gibt es da unterschiede?

                Gruß,
                Andreas

                Kommentar


                • #9
                  nein da Fehlt das E_STRICT
                  Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

                  Kommentar


                  • #10
                    Ist das nicht das selbe das man schon in der php.ini eingestellt hat?
                    Code:

                    error_reporting = E_ALL & ~E_NOTICE
                    nein, denn du schaltest die NOTICES ab - und genau die kommen, wenn du eine variable nicht deklarierst.

                    Kommentar


                    • #11
                      Zitat von axo
                      ein, denn du schaltest die NOTICES ab - und genau die kommen, wenn du eine variable nicht deklarierst.
                      war das nicht E_STRICT? aber is eigentlich egal da E_ALL immer noch die beste Lösung ist
                      Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

                      Kommentar


                      • #12
                        Zitat von HStev
                        Zitat von axo
                        ein, denn du schaltest die NOTICES ab - und genau die kommen, wenn du eine variable nicht deklarierst.
                        war das nicht E_STRICT? aber is eigentlich egal da E_ALL immer noch die beste Lösung ist
                        Da wird wohl irgendwas aus dem Beispiel aus der php.ini-recommend durcheinander gebracht
                        ; Examples:
                        ;
                        ; - Show all errors, except for notices and coding standards warnings
                        ;
                        ;error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
                        aber error_reporting = E_ALL & ~E_STRICT schaltet nur explizit E_STRICT ab (was bisher unnötig ist, E_ALL beihnhaltet nicht E_STRICT), Hinweise (E_NOTICE) werden aber weiterhin angezeigt.

                        Kommentar


                        • #13
                          Und wie schalte ich dann E_STRICT ein? Indem ich die Tilde (~) weglasse?
                          Code:
                             error_reporting = E_ALL & E_NOTICE & E_STRICT
                          Dank und Gruß,
                          Andreas

                          Kommentar


                          • #14
                            einfach nur E_ALL | E_STRICT

                            E_NOTICE ist in E_ALL enthalten.
                            E_STRICT gibt es erst seit php5 und Du bekommst zum Beispiel Warnungen, wenn Du "alte" php4 Klassen verwendest.


                            edit: E_ALL & E_STRICT zu E_ALL | E_STRICT verbessert.

                            Kommentar


                            • #15
                              Ok, alles klar. Danke!

                              Kommentar

                              Lädt...
                              X