如何初始化静态变量

我有以下代码:

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();

}

以上是 如何初始化静态变量 的全部内容, 来源链接: utcz.com/qa/411953.html

回到顶部