我有以下代码:
private static $dates = array( 'start' => mktime( 0, 0, 0, 7, 30, 2009), // Start date 'end' => mktime( 0, 0, 0, 8, 2, 2009), // End date 'close' => mktime(23, 59, 59, 7, 20, 2009), // Date when registration closes 'early' => mktime( 0, 0, 0, 3, 19, 2009), // Date when early bird discount ends );
这给了我以下错误:
解析错误:语法错误,在第19行的/home/user/Sites/site/registration/inc/registration.class.inc中出现意外的’(’,期待’)’
所以,我想我做错了什么…但是如果不那样做怎么办?如果我用常规字符串更改mktime内容,它将起作用。所以,我知道我能做到这一点 的那种 像..
有人有指针吗?
PHP无法在初始化程序中解析非平凡的表达式。
我更喜欢通过在类定义之后添加代码来解决此问题:
class Foo { static $bar; } Foo::$bar = array(…);
要么
class Foo { private static $bar; static function init() { self::$bar = array(…); } } Foo::init();
PHP 5.6现在可以处理一些表达式。
/* 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(); }