Registrieren  •  Login 
  
 
im Forum




Blog-Übersicht -> PHP + Konstanten = Megafail Beta: Google Font API und Google Font Directory :: Pac-Man feiert 30. Geburtstag - Google Logo wird zum Spiel
PHP + Konstanten = Megafail
Verfasst am: 19.05.2010, 23:47   Autor: killerbees19
Ja, ich ärgere mich heute wirklich lange damit. Langsam schwillt mir der Hals an, denn so ein Programm-/Script-Verhalten ist doch einfach nicht durchdacht bzw. verstößt gegen so ziemlich alle Prinzipien einer sauberen Programmierung Rolling Eyes

Beispiel 1: Vordefinierte Konstanten können als benutzerdefinierte Konstanten verwendet werden. Zwar nur in Verbindung mit constant() - aber trotzdem ist es etwas unlogisch, da man so eine vordefinierte Konstante halb überschreiben kann Shocked

PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

// "Überschreiben" der Konstanten
define(&#039;NULL&#039;, &#039;test&#039;);
define(&#039;__FILE__&#039;, &#039;test&#039;);

// Die normalen - erwarteten - Werte
var_dump(NULL);
var_dump(__FILE__);

echo 
"\n\n";

// Unsere eigenen Werte
var_dump(constant(&#039;NULL&#039;));
var_dump(constant(&#039;__FILE__&#039;));

?>


Beispiel 2: Konstanten mit ungültigen Namen können ohne Fehlermeldung definiert werden, sind dann aber logischerweise nicht aufrufbar, erscheinen aber in der Liste aller definierten Konstanten Shocked

PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

// Eine Konstante, die es gar nicht geben kann,
// da nur "[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*" erlaubt ist...
define(&#039;TEST !"§$%&/()=?&#039;, &#039;test&#039;);

// Logisch, funktioniert nicht!
var_dump(constant(&#039;TEST !"§$%&/()=?&#039;&#039;));

// Aber hier wird sie aufgelistet...
var_dump(get_defined_constants(true));

?>


Liste wird vielleicht noch erweitert...


MfG Christian

Dieser Beitrag wurde insgesamt 3 mal geändert. Zuletzt am 19.05.2010, 23:47.


Autor Nachricht
Für diesen Beitrag können zur Zeit keine neuen Kommentare verfasst werden.

Kontaktiere den Autor des Beitrages, falls du Fragen dazu hast.


 

Verwendete Zeitzone: CET (Europe/Berlin)
Aktuelles Datum & Uhrzeit: 28.01.2023, 17:01
Nach oben
Valid HTML 4.01 Transitional
Valid CSS!

Hosted by netcup
 
 
[ happytec.at | blog.happytec.at | forum.happytec.at | esports.happytec.at ]