类属性不能用运行时信息声明。
public static $depositmoney = self::get_balance();
以上内容无效。
见
PHP Manual on Class Properties:
(强调矿山)
类成员变量称为“属性”。您也可以看到它们是使用其他术语(如“属性”或“字段”)引用的,但在本参考中,我们将使用“属性”。它们是通过使用关键字public、protected或private中的一个来定义的,然后是一个普通变量声明。此声明可能包含初始化,但此初始化必须是一个常量值——即,必须能够在编译时对其进行计算,并且
必须不依赖运行时信息才能进行评估
.
你可以为
$depositmoney
如果当前未设置,则让它初始化该值:
public static function getDepositMoney()
{
if(self::$depositmoney === NULL) {
self::$depositmoney = self::get_balance();
}
return self::$depositmoney;
}
不过,我建议把
static
并使用实例方法和属性来跟踪状态。你也要摆脱
global
通过构造函数、setter或方法调用填充和注入依赖项。这样可以减少耦合,使代码更易于维护。