我有一个名为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 中,这给了我一个错误:
致命错误:未捕获的错误:调用未定义的方法 Error::getError()
你能帮我理解为什么这不再起作用了吗?我已经尝试过这个来检查是否正在加载 Error 类,并且它确实有效(并调用了构造函数):
$Error = new Error();
除非我实例化了这个类,否则我不能以某种方式调用静态类函数。如果这真的是 php7 的变化,这将打破我的许多其他逻辑。