我有一个类需要在:
中使用php的time()
函数
<?php
class SomeClass {
public $expiration = time() + (21 * 24 * 60 * 60); // 3 wks from now
}
但是这会引发:
解析错误:语法错误,第5行的 [...] [...] 中的意外'(',期待','或';'
我能做到这一点并且有效:
<?php
class SomeClass {
public $expiration = 0
function __construct() {
$this->expiration = time() + (21 * 24 * 60 * 60);
}
}
为什么我不能在第一时间做到这一点?
答案 0 :(得分:2)
为什么我不能在第一时间做到这一点?
因为http://php.net/manual/en/language.oop5.properties.php:
“[properties]是通过使用关键字public,protected或private之一定义的,后跟普通变量声明。此声明可能包括初始化,但此初始化必须是常量值 - 也就是说,必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。“
答案 1 :(得分:1)
来自Properties的PHP文档:
类成员变量称为“属性”。您也可以使用“属性”或“字段”等其他术语来查看它们,但出于本参考的目的,我们将使用“属性”。它们通过使用public,protected或private之一,然后是普通变量声明来定义。 此声明可能包含初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。强>
对time()
的调用不是常量值。因此它将是无效的。