php classe:从函数中获取值的问题到成员变量
-
28-09-2019 - |
题
我的函数可以从数据库中获取值并返回它。我调用该函数将其存储到成员变量中,但我会收到以下错误:
Parse error: parse error, expecting `','' or `';'' in I:\wamp\www\deposit\classes\Site.php on line 14
这是导致错误的行
public static $depositmoney = self::get_balance();
这是从数据库中获取值的函数
public static function get_balance()
{
global $link, $usertable, $userid, $useridentify;
//query current balance
$cb = mysqli_fetch_object(mysqli_query($link, "SELECT deposit FROM ".$usertable." WHERE ".$userid."=".$useridentify.""));
return $cb->deposit;
}//end of function get_balance().
所有这些代码都在同一类中。有人想出什么原因导致错误?
解决方案
类属性可能不会使用运行时信息声明。
public static $depositmoney = self::get_balance();
以上是行不通的。
看到 PHP手册上的类属性: (强调我的)
类成员变量称为“属性”。您可能还会看到他们引用了使用其他术语,例如“属性”或“字段”,但是就此参考而言,我们将使用“属性”。它们是通过使用公共,受保护或私有的关键字之一来定义的,然后是普通变量声明。该声明可能包括初始化,但是此初始化必须是一个恒定值 - 也就是说,必须在编译时和 不得依赖运行时间信息才能评估.
您可以为 $depositmoney
如果当前尚不设置值,则将其初始化为初始化:
public static function getDepositMoney()
{
if(self::$depositmoney === NULL) {
self::$depositmoney = self::get_balance();
}
return self::$depositmoney;
}
但是,我建议摆脱 static
并使用实例方法和属性来跟踪状态。您还想摆脱 global
通过构造函数,设置器或方法调用期间的东西和注入依赖项。这会减少耦合,并使代码更可维护。
不隶属于 StackOverflow