Das Problem in Ihrer Klassendeklaration ist nicht, dass Sie eine Konstante verwenden, sondern einen Ausdruck.
Klassenmitgliedsvariablen heißen "Eigenschaften". (...) Sie werden mit einem der Schlüsselwörter public, protected oder private definiert, gefolgt von einer normalen Variablendeklaration. Diese Deklaration kann eine Initialisierung beinhalten, aber diese Initialisierung muss ein konstanter Wert sein - das heißt, sie muss zur Kompilierzeit ausgewertet werden können und darf nicht von Laufzeit-Informationen abhängig sein bewertet.
Diese einfache Deklaration zum Beispiel wird nicht kompiliert (Parse-Fehler):
%Vor%Wenn wir jedoch Ihre Klassendeklaration so ändern, dass sie die einfache Konstante verwendet, und nicht eine mit dieser Konstante verkettete Zeichenkette, wird sie wie erwartet funktionieren.
%Vor%Als Umgehung könnten Sie Ihre Eigenschaften im Konstruktor initialisieren:
%Vor% Ich hoffe, das hilft dir,
Alin
Beachten Sie, dass dies für PHP 5.6 und höher möglich ist.
Siehe Ссылка :
Es ist jetzt möglich, einen Skalarausdruck anzugeben, der numerische und String-Literale und / oder Konstanten in Kontexten enthält, in denen PHP zuvor einen statischen Wert erwartet hat, wie zB Konstanten- und Eigenschaftsdeklarationen und Standardfunktionsargumente.
Tags und Links const class php oop properties