| | |
|
|
|
|
PHP + Konstanten = Megafail |
|
|
|
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
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
PHP-Code: 1
| <?php
// "Überschreiben" der Konstanten
define('NULL', 'test');
define('__FILE__', 'test');
// Die normalen - erwarteten - Werte
var_dump(NULL);
var_dump(__FILE__);
echo "\n\n";
// Unsere eigenen Werte
var_dump(constant('NULL'));
var_dump(constant('__FILE__'));
?>
|
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
PHP-Code: 1
| <?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('TEST !"§$%&/()=?', 'test');
// Logisch, funktioniert nicht!
var_dump(constant('TEST !"§$%&/()=?''));
// 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. |
Nach oben |
|
Kommentare: 0 |
Kommentare sind deaktiviert |
|
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: 22.01.2025, 08:03 |
Nach oben |
|
|
|
|
|
|
| | |