我所做的是,我在我的Database类中使用了一个静态字段来存储mysqli对象。这是代码:
public static $Driver;
public static function Connect()
{
self::$Driver = new mysqli(self::$Server, self::$DBUsername, self::$DBPassword, self::$DBName);
}
稍后,在另一个类中,我想使用这个静态字段。我试过这个:
if (Database::Driver->errno != 0) return(false); else return(true);
并在该行中出现此错误:
你能告诉我我做错了吗?语法错误,意外T_OBJECT_OPERATOR ...
答案 0 :(得分:5)
要访问静态属性,$
后需要::
。访问类属性$Driver
,就像它是类Database
范围内的变量一样。
if (Database::$Driver->errno != 0)
//-----------^^^
如果没有$
,它将被解析为类常量,而常量(基元)不能具有自己的对象属性。因此unexpected T_OBJECT_OPERATOR
,意味着意外的->
。