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