[PHP] Notice: Use of undefined constant

Apache, Lighttpd, nginx, Cherokee
Post Reply
matzel78
Posts: 17
Joined: 2004-12-21 02:15
Location: Moers
 

[PHP] Notice: Use of undefined constant

Post by matzel78 »

Hallo!

Nach einem Servercrash haben wir eine neue PHP Version aufgespielt.
Seitdem kommt auf einer Seite von uns, ein solcher Fehler:

Code: Select all

Notice: Use of undefined constant weekday - assumed 'weekday' in /home/torpedo/www/html/index.php on line 36

Notice: Use of undefined constant weekday - assumed 'weekday' in /home/torpedo/www/html/index.php on line 37

Notice: Use of undefined constant weekday - assumed 'weekday' in /home/torpedo/www/html/index.php on line 38

Notice: Use of undefined constant weekday - assumed 'weekday' in /home/torpedo/www/html/index.php on line 40
Ich habe mitlerweile rausgefunden woran es liegt:

Code: Select all

 if($datum[weekday] == "Monday") { $datum[weekday] = "Mo"; }
                      if($datum[weekday] == "Tuesday") { $datum[weekday] = "Di"; }
                      if($datum[weekday] == "Wednesday") { $datum[weekday] = "Mi"; }
                      if($datum[weekday] == "Thursday") { $datum[weekday] = "Do"; }
                      if($datum[weekday] == "Friday") { $datum[weekday] = "Fr"; }
                      if($datum[weekday] == "Saturday") { $datum[weekday] = "Sa"; }
                      if($datum[weekday] == "Sunday") { $datum[weekday] = "So"; }

Code: Select all

$datum[weekday] 
muss lauten

Code: Select all

$datum["weekday"]


Ausserdem habe ich gelesen, dass es eine Einstellung in der php.ini sei, die für die Fehlermeldung verantwortlich ist. Weis einer welche Option das ist ?
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: [PHP] Notice: Use of undefined constant

Post by Roger Wilco »

matzel78 wrote:Ausserdem habe ich gelesen, dass es eine Einstellung in der php.ini sei, die für die Fehlermeldung verantwortlich ist. Weis einer welche Option das ist ?
error_reporting

Wie du sicher festgestellt hast, sind das keine Fehlermeldungen, sondern nur Anmerkungen von PHP zu "unsauberer" Programmierung.
matzel78
Posts: 17
Joined: 2004-12-21 02:15
Location: Moers
 

Re: [PHP] Notice: Use of undefined constant

Post by matzel78 »

Hi!

Danke für die beiden Links und den Hinweis. Ich habe jetzt die php.ini von

Code: Select all

error_reporting  = E_ALL
in

Code: Select all

error_reporting  = E_ALL & ~E_NOTICE
geändert (so wie es auch in der php.ini kommentiert ist).
Es funktioniert jetzt!

Wer lesen kann ist doch klar im Vorteil. :)
andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen
 

Re: [PHP] Notice: Use of undefined constant

Post by andreask2 »

matzel78 wrote:Wer lesen kann ist doch klar im Vorteil. :)
Hm, anscheinend nicht denn unter dem Link im Manual steht:

Code: Select all

 Wie schon in den obigen Beispielen erklärt wurde, funktioniert $foo[bar] zwar, ist aber falsch. Es funktioniert, weil bar aufgrund seiner Syntax als Konstante ausgewertet wird. In diesem Fall jedoch existiert keine Konstane mit dem Namen bar. PHP nimmt an, dass Sie bar wörtlich gemeint haben, wie den String 'bar', aber vergessen haben, die Anführungszeichen zu setzen.

Aber warum ist es schlecht?

Eines Tages könnte sich das PHP-Team entscheiden eine weitere Konstante oder ein Schlüsselwort hinzuzufügen oder Sie könnten eine weitere Konstante in Ihre Anwendung einfügen. Und dann geraten Sie in Schwierigkeiten. Zum Beispiel können Sie bereits die Wörter empty und default auf diese Art nicht benutzen, weil es speziele Schlüsselwörter sind. 
http://de3.php.net/manual/de/language.t ... rray.donts

Und irgendwo steht auch dass diese Raterei durchaus Performance kostet.
Post Reply