Andreas Korthaus: OOP: Konstanten definieren, Klassen vereinbaren

Beitrag lesen

Hoi!

  1. Wie definiert man in PHP OOP Konstanten?
    Variablen werden explizit definiert mit "var"
    Da liegt doch die Vermutung nahe, dass es auch für Konstanten der Klasse eine eigene Definition gibt.

In PHP 4 nicht, in PHP5 gibt es "const": http://de3.php.net/zend-engine-2.php

Ich habe aber nun schon bestimmt 60 "Tutorials" für OOP in PHP durch. Erstens taugen die meisten nix und zweitens steht (wahrscheinlich deshalb) nix vernünftiges drin.

Wieso? Was sollte denn drin stehen? Was fehlt Dir? Auf welchen Seiten hast Du so nach Tutorials gesucht?

Eben. Allerdings würde ich vermuten, dass Konstanten in jedem Falle superglobal sind. Also keine korrekte Namensraumtrennung bei Konstanten möglich ist.

Korrekt.

Irgendwo muss das doch mal nachzulesen sein *verflixt nochmal*

http://de3.php.net/define: " Auf eine Konstante überall zugegriffen werden kann, ohne allerdings den Auswertungsregeln von Variablen zu unterliegen;"
wieso reicht Dir diese Aussage nicht? In dem Fall hätte ich noch fogendes anzubieten: http://de3.php.net/constants
" Wie bei superglobals ist der Gültigkeitsbereich einer Konstanten global. Unabhängig vom Gültigkeitsbereich können Sie in Ihrem Skript überall auf eine Konstante zugreifen."

  1. Darf man _in_ Klassendefinitionen weitere Klassen definieren?

Ich bin mir ziemlich (wenn auch nicht 100%ig) sicher das das weder in PHP4 noch in PHP5 geht.

Ol, ich probiers gleich mal aus. Hab nur immer Angst, es abzuschießen. Da gabe es bei den älteren Versionen der 4.x-Klasse so ein paar nette Versuche, die ich durchgeführt habe, die dann eine Neuinstallation erforderlich gemacht haben (und das auf LINUX !)

Ach ja, ich erinnere mich ;-)
Das ist und blebt ein Rätsel für mich, habe sowas noch nie geschafft,  aber das liegt vermutlich daran dass Du damals mit einer sehr verbuggten (hoffentlich nicht 4.0.6?) Version gearbeitet hast. Ich glaube mit so alten Versionen habe ich nie gearbeitet, auf alle Fälle gab es schon PHP > 4.1 als ich damit angefangen habe.
Naja, wenn man mit einem Syntax-Error PHP komplett abschießen könnte dann wär das ein ganz grober Bug! Und wäre mir nicht bekannt, aber versuchs doch einfach mal ;-)

Grüße
Andreas