Akela: PHP und strict ?

Hallo,

unter Perl kenne ich "use strict", welches mir die Möglichkeit eröffnet, sauberen Code zu schreiben. Heisst, alle Variablen müssen deklariert sein, bevor man sie benutzt.
Gibt es in PHP eine Entsprechung ? Ich habe gehört es gäbe nun einen ini-Eintrag, der das bewirkt. Leider finde ich dazu nichts und google schweigt sich da auch aus (zumindest mit meinen Suchwörtern)

ciao Akela

  1. Hello,

    unter Perl kenne ich "use strict", welches mir die Möglichkeit eröffnet, sauberen Code zu schreiben. Heisst, alle Variablen müssen deklariert sein, bevor man sie benutzt.
    Gibt es in PHP eine Entsprechung ? Ich habe gehört es gäbe nun einen ini-Eintrag, der das bewirkt. Leider finde ich dazu nichts und google schweigt sich da auch aus (zumindest mit meinen Suchwörtern)

    Das würde ich auch begrüßen, wenn es das gäbe.
    Und dann bitte noch die Definition eigener Datenstrukturen einführen, so wie in C (struct) oder Pascal (record).

    http://www.php.net/manual/en/function.error-reporting.php -> E_STRICT
    http://www.php.net/manual/en/ref.errorfunc.php#errorfunc.constants.errorlevels.e-strict
    meint wohl etwas anderes. Ich habe es aber noch nicht ausprobiert...

    Mit "E_ALL" im Error_Reporting() sollte aber schon ein guter Teil abgedeckt sein.
    Leider sehe ich auch keinen Weg, die Implizite Variablendeklaration (für Skalare oder für die Anker von Objekten und Arrays) abzuschalten.

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. echo $begrüßung;

      error_reporting -> E_STRICT [...] meint wohl etwas anderes.

      Das erzeugt Notiz-Meldungen wenn veraltete PHP4-Syntax unter PHP5 verwendet wird und betrifft vor allem den Umgang mit Classen.

      echo "$verabschiedung $name";

    2. Hallo Tom,

      unter Perl kenne ich "use strict", welches mir die Möglichkeit eröffnet, sauberen Code zu schreiben. Heisst, alle Variablen müssen deklariert sein, bevor man sie benutzt.
      Gibt es in PHP eine Entsprechung ? Ich habe gehört es gäbe nun einen ini-Eintrag, der das bewirkt. Leider finde ich dazu nichts und google schweigt sich da auch aus (zumindest mit meinen Suchwörtern)

      Das würde ich auch begrüßen, wenn es das gäbe.

      Das gibt es so bei PHP konzeptbedingt nicht, da PHP gar keine Möglichkeit bietet Variablen explizit zu deklarieren, wie es my bei Perl tut. Eine normale Variable wird dadurch erzeugt, dass ihr ein Wert zugewiesen wird. Wenn aber error_reporting auf E_NOTICE gesetzt ist, gibt es eine Warnung, falls versucht wird, eine nicht-definierte Variable zu verwenden.

      Und dann bitte noch die Definition eigener Datenstrukturen einführen, so wie in C (struct) oder Pascal (record).

      OOP?

      Schöne Grüße,

      Johannes

  2. unter Perl kenne ich "use strict", welches mir die Möglichkeit eröffnet, sauberen Code zu schreiben. Heisst, alle Variablen müssen deklariert sein, bevor man sie benutzt.

    Nein, das strict-Pragma überwacht (für die Variablendeklaration) lediglich, dass alle Variablen im *lexical scope* deklariert sind, also my oder our. Den lexical scope gibt's auch ohne use strict, die Details habe ich in diesem Posting dargestellt.

    Siechfred

    --
    Wir vom Moderatorenteam haben keinerlei Humor, von dem wir wüssten.