У меня есть пользовательский класс с именем Error
, который я автоматически загружаю в первую очередь. В моем пользовательском классе у меня есть конструктор и одноэлементная функция Get, например:
class Error
{
// Singleton object. Leave $me alone.
private static $me;
public $errors; // Array of errors
public $style; // CSS rules to apply to error elements
private function __construct($style = "border:1px solid red;")
{
$this->errors = array();
$this->style = $style;
}
// Get Singleton object
public static function getError()
{
if(is_null(self::$me))
self::$me = new Error();
return self::$me;
}
//...
}
В моем основном включении я всегда готовил синглтон этого пользовательского класса перед основной логикой:
$Error = Error::getError();
Однако в PHP 7 это теперь дает мне ошибку:
Неустранимая ошибка: Uncaught Error: вызов неопределенного метода Error::getError()
Можете ли вы помочь мне понять, почему это больше не работает? Вместо этого я попробовал это, чтобы проверить, загружается ли класс Error вообще, и он работает (и вызывает конструктор):
$Error = new Error();
Почему-то я не могу вызвать функцию статического класса, если я не создал экземпляр этого класса. Это сломает много другой логики, которая у меня есть, если это действительно изменение в php7.
Error
. Вы, вероятно, испытываете ошибки пространства имен. Существует ли ваш классError
в пользовательском пространстве имен? php.net/manual/en/class.error.php - person Michael Berkowski   schedule 08.10.2017Error
вместо своего собственного. - person Michael Berkowski   schedule 08.10.2017