PHP can't parse non-trivial expressions in initializers.
I prefer to work around this by adding code right after definition of the class:
class Foo { static $bar;}Foo::$bar = array(…);
or
class Foo { private static $bar; static function init() { self::$bar = array(…); }}Foo::init();
PHP 5.6 can handle some expressions now.
/* For Abstract classes */abstract class Foo{ private static function bar(){ static $bar = null; if ($bar == null) bar = array(...); return $bar; } /* use where necessary */ self::bar();}