Hallo,
ich habe folgendes Problem:
ich habe auf meinem MAC den Apache v. 1.3.33 und PHP5.2.1.
Wenn ich jetzt mein Skript aufrufe wird folgender Fehler ausgegeben:
Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTIONIn diesem Skript wird eine Klasse aufgerufen und der Fehler soll anscheinend in folgender Zeile stattfinden:
private static $instanceMap = array();Ich sehe hier aber keine Fehler...woran könnte das noch liegen? kann es sein, dass der interpreter noch in php4 interpretiert? aber die oben angegebenen daten stehen auch auf meiner testseite wo ich phpinfo() ausgeben lasse.
vielen dank für eure hilfe!
Tobias H.
Statische Klassenvariablen können nicht mit Funktionsaufrufen initialisiert werden (keine Ahnung warum das so ist). Workaround:
class MyClass {
private static $mystatic = null;
public static function classInit() {
if (null===self::$mystatic) {
self::$mystatic = array();
}
}
}
MyClass::classInit();
Einen static{}-Block zur Klasseninitialisierung wie in Java gibt es in PHP leider nicht, also baut man sich den von Hand nach (s.o.).
Gruss
Michael