Синтаксическая ошибка PHP, неожиданный T_OBJECT_OPERATOR - PullRequest
3 голосов
/ 18 декабря 2011

Я использовал статическое поле в своем классе 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 ...

Можете ли вы сказать мне, что я делаю не так?

1 Ответ

5 голосов
/ 18 декабря 2011

Чтобы получить доступ к статическому свойству, вам нужно $ после ::. Доступ к свойству класса $Driver осуществляется так, как если бы он был переменной в области видимости класса Database.

 if (Database::$Driver->errno != 0)
 //-----------^^^

Без $ он будет проанализирован как константа класса, и константы, которые являются примитивами, не могут иметь собственных свойств объекта. Отсюда unexpected T_OBJECT_OPERATOR, что означает неожиданный ->.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...