Das folgende Beispiel einen Syntaxfehler aufgrund des folgenden Code hat:Zugriff auf eine statische Variable in einer Klasse
"another_key" => [ 2 => self::$someStr ]
Mit etwas wie:
"another_key" => [ 2 => "bar" ]
Ist die korrekte Syntax. Gibt es eine Möglichkeit, auf $ someStr zuzugreifen, anstatt die Zeichenfolge hart zu codieren?
<?php
class Foo {
protected static $someStr = 'bar';
private static $arr = [
"some_key" => [ 1 ],
"another_key" => [ 2 => self::$someStr ]
];
}
Gemäß der [PHP Docs] (http://php.net/manual/en/language.oop5.properties.php): '[Property] -Deklaration kann eine Initialisierung enthalten, aber diese Initialisierung muss ein konstanter Wert sein Das heißt, es muss in der Lage sein, zur Kompilierzeit ausgewertet zu werden und darf zur Auswertung nicht auf Laufzeitdaten angewiesen sein. Die Verwendung von 'self :: $ someStr 'erfordert eine Laufzeitauswertung –