PHP und strict ?
Akela
- php
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
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
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";
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
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