Variablendefinition zwingend
Stefan
- php
hallo zusammen,
kann man in einem php skript einen befehl definieren, der die zwingende deklaration von variablen fordert.
ähnlich in VBA "Option Explizit"
danke im voraus.
Stefan
n'abend,
kann man in einem php skript einen befehl definieren, der die zwingende deklaration von variablen fordert.
Zugriffe auf nicht deklarierte Variablen werfen eine Notice (/Warning).
Von weiteren Möglichkeiten weiss ich nichts.
Was willst du damit denn überhaupt erreichen?
weiterhin schönen abend...
Hi,
Was willst du damit denn überhaupt erreichen?
ich habe eben die Variablen-Namen in meinen PHP Skript geändert. Danach ging mein Skript nicht mehr. Bis ich den Fehler fand, dass ich noch eine Variable mit alten Namen hatte.
Ich suche eine Möglichkeit, dass das Skript eine Meldung bei einer nicht definierten Variable ausgibt.
Bye
Stefan
Hallo Stefan,
Ich suche eine Möglichkeit, dass das Skript eine Meldung bei einer nicht definierten Variable ausgibt.
genau das erreichst du, wenn du error_reporting auf E_ALL setzt. Dann bekommst du für solche "Sünden" eine Notice angezeigt. Sollte man während der Entwicklung von PHP-Scripts *immer* setzen.
So long,
Martin
Hi Martin,
danke für den Tipp!
Hi Martin,
soll man den Befehl error_reporting (E_ALL); immer in das Skript einbauen oder nur zum Testen.
Oder anders gefragt: Hat man durch error_reporting (E_ALL); Nachteile.
Performance etc.?
Bye
Stefan
echo $begrüßung;
soll man den Befehl error_reporting (E_ALL); immer in das Skript einbauen oder nur zum Testen.
Im laufenden Betrieb sollten gar keine Fehlermeldungen der zugrunde liegenden Technik (PHP, Datenbank, etc.) angezeigt werden. Das ist weder Information, die den Anwender was angeht, noch kann er mit ihr etwas anfangen.
Falls trotz Test auf Herz und Nieren doch Fehler auftreten sollten, kann man diese so loggen, dass der Administrator an die Meldungen kommt. Siehe: Error Handling and Logging Functions.
echo "$verabschiedung $name";
n'abend,
Falls trotz Test auf Herz und Nieren doch Fehler auftreten sollten, kann man diese so loggen, dass der Administrator an die Meldungen kommt. Siehe: Error Handling and Logging Functions.
man will auch Fehlermeldungen im laufenden Betrieb bekommen. Oh, ist die Datenbank verreckt? Oh, hat man beim letzten Update vergessen allow_url_fopen zu aktivieren? Hat sich sonst irgendwie irgendwas geändert, was sich nicht positiv auf das System auswirkt?
Im Live-Betrieb möchte man - wie dedlfix sagte - diese Information nicht ausgeben, sondern in ein Log schreiben. Die Reportingfunktionen komplett zu deaktivieren/ignorieren halte ich _nicht_ für sinnvoll.
weiterhin schönen abend...
echo $begrüßung;
man will auch Fehlermeldungen im laufenden Betrieb bekommen.
Ja, stimmt. Also zusammengefasst: das error_reporting auf E_ALL lassen, aber display_errors ausschalten und einen Error-Handler aufsetzen, den man angemessene Tätigkeiten verrichten lässt (Logdatei-Eintrag, Email, ...).
echo "$verabschiedung $name";
n'abend,
Ja, stimmt. Also zusammengefasst: das error_reporting auf E_ALL lassen, aber display_errors ausschalten und einen Error-Handler aufsetzen, den man angemessene Tätigkeiten verrichten lässt (Logdatei-Eintrag, Email, ...).
und weiter angemerkt werden möchte die @-Situation.
Ist zwar schön, dass man mittels @ vor dem Funktionsaufruf dessen etwaige Fehlermeldungen unterdrücken kann, jedoch sollte in einem solchen Fall darauf geachtet werden, dass wichtige Information ebenfalls ins Fehlerprotokoll wandern.
weiterhin schönen abend...
echo $begrüßung;
und weiter angemerkt werden möchte die @-Situation.
Ist zwar schön, dass man mittels @ vor dem Funktionsaufruf dessen etwaige Fehlermeldungen unterdrücken kann, jedoch sollte in einem solchen Fall darauf geachtet werden, dass wichtige Information ebenfalls ins Fehlerprotokoll wandern.
Auch bei ge-@-ten Fehlern wird der eigenkreierte Error-Handler aufgerufen. Wenn man diese doch nicht beachten möchte, muss man error_reporting() befragen. Ist der Rückgabewert 0, war ein @ im Spiel, wenn der Wert ansonsten von 0 verschieden ist.
echo "$verabschiedung $name";