PHP 5.4 是否有一些错误 class 的替代品?

Is there some Error class replacement for PHP 5.4?

我喜欢使用 PHP Error class 到 return 像这样使用 throw:

throw new Error('Some problem description');

遗憾的是,我必须在 CentOS 7.5 上使用 PHP 5.4.16。错误 class 是在 PHP 7.

中引入的

有没有我可以包含的 class 来模拟来自 PHP 7 的错误 class 的行为?

PHP5中没有Errorclass,但是这个class和Exceptionclass是一样的。如果要生成自定义错误,请使用 Exception

throw new Exception('Some problem description');

ErrorExceptionclass从功能上来说没有区别。我们拥有这两者的唯一原因是出于语义目的。我们不希望 PHP 5 代码在升级到 PHP 7 后使用 try() catch(Exception $e) 逻辑捕获致命错误。

Error and Exception 具有完全相同的签名,因此您可以使用后者:

if (!class_exists('Error')) {
   class Error extends Exception
   {
   }
}

Demo

根据自己的喜好进行调整。例如,您可能想要 check PHP version(为 PHP/5 编写的软件可能已经具有自定义 Error class)。当然,没有任何原生函数会真正抛出它。