Пользовательский класс исключений автоматически вызывает конструктор класса исключений без вызова родительского конструктора в конструкторе пользовательских исключений. Насколько я знаю, когда мы хотим вызвать родительский конструктор для объекта дочернего класса, то мы должны написать Родитель :: __ конструкт () в конструкторе дочернего класса.
Пожалуйста, кто-нибудь подскажет, как пользовательский класс исключений автоматически вызывает родительский конструктор «Exception».
Пожалуйста, смотрите код ниже,
<?php
class customException extends Exception {
/* function __construct($email) {
echo $email." custom exception constructor<br />";
} */
public function errorMessage() {
//error message
$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()
.': <b>'.$this->getMessage().'</b> is not a valid E-Mail address';
return $errorMsg;
}
}
$email = "someoneexample.com";
try {
//check if
if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE) {
//throw exception if email is not valid
throw new customException($email);
} else {
echo "Valid email";
}
}
catch (customException $e) {
//display custom message
echo $e->errorMessage();
}
ВЫХОД ЭТО:
Ошибка в строке 41 в D: \ wamp \ www \ exception.php: somebodyexample.com не является действительным адресом электронной почты
Обновить:
class ParentClass {
function __construct() {
echo "This is parent class<br />";
}
}
class Child extends ParentClass{
function __construct() {
echo "This is child class<br />";
}
}
$child = new Child();
ВЫХОД
Это детский класс
Задача ещё не решена.
Других решений пока нет …