我有CMS并尝试安装它,但当我尝试登录时出现错误
无法覆盖最终方法Exception :: getPrevious()
Fatal error: Cannot override final method Exception::getPrevious() in C:\wamp\www\uis-online\application\exceptions\applicationException.php on line 41
anyboy是否知道导致此错误的原因
此文件中的代码是
class ApplicationException extends Exception
{
protected $innerException;
/**
* Konstruktor
* @return unknown_type
*/
public function __construct($message, $code = 0, Exception $innerException = null)
{
parent::__construct($message, $code);
if (!is_null($innerException))
{
$this->innerException = $innerException;
}
}
public function getPrevious()
{
return $this->innerException;
}
// custom string representation of object
public function __toString() {
$exceptions_message = "";
if($this->innerException != null && $this->innerException->getMessage() != "") {
$exceptions_message = $this->innerException->__toString();
}
return $exceptions_message .__CLASS__ . ": [{$this->code}]: {$this->message}\n";
}
}
答案 0 :(得分:2)
如文档中所示,您尝试覆盖的方法是最终方法。
final public Exception Exception::getPrevious ( void )
http://php.net/manual/en/exception.getprevious.php 根据PHP手册,您无法覆盖最终方法。
PHP 5引入了final关键字,它通过在final中添加前缀来阻止子类覆盖方法。如果类本身被定义为final,则无法扩展。