PHP5.5中static类型的数组元素值不能为函数

写代码时实例化了一个static类型的数组,定义了某个值为当前date()时间,但是执行后发现PHP报错了Parse error: syntax error, unexpected ‘(‘, expecting ‘)’ in …,可是看代码貌似有看不出啥问题

<?php

class A {

  private static $arr = array(
    'name' => 'test',
    'time' => date()
  );

  public function index()
  {
    var_dump(self::$arr);
  }
}

$a = new A();
$a->index();

?>

运行就抛出 Parse error: syntax error, unexpected ‘(‘, expecting ‘)’ in …

然后就怀疑是不是static变量中不能有函数,试了下果然可以运行成功,后来参考官方文档发现,PHP5.6之前是只能初始化为文字或者常量,表达式是不允许的。

static

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>