Это мой код
class MyException extends Exception { public function __construct($message, $code=0, Exception $previous = null) { parent::__construct($message,$code,$previous); } public function __toString() { return __CLASS__. ":[{$this->code}]:{$this->message}\n"; } }
Вот ошибка
Fatal error: Wrong parameters for Exception([string $exception [, long $code ]]) on line 5
означает на этой линии
parent::__construct($message,$code,$previous);
Что происходит не так?
Как отмечено в комментариях, а также на странице конструктора исключений , аргумент $previous
был добавлен в PHP 5.3.
Это отражено в сообщении об ошибке:
Неверные параметры для исключения ([string $ exception [, long $ code]])
PHP немного ревностно следит за тем, чтобы конструктор точно соответствовал . Исключения составляют важную часть внутренних бит, и получение их в точности правильное стоит педантично.
Эта демонстрация кода показывает, как старые версии PHP обрабатывают неверный параметр. Из приведенной выше формулировки вы используете PHP 5.1 или 5.2.
Имейте в виду, что на момент написания этой статьи (февраль 2014 года) версии PHP до 5.4 достигли конца жизни для обновлений безопасности и исправления ошибок, а 5.4 – для EOL летом 2014 года .
Если вы можете, убедитесь, что вы используете современную версию PHP при развертывании приложения.