Учитывая следующий класс PHP:
class someObject {
public function broken(){
return isset($this->something()) ? 'worked' : 'didnt';
}
public function something(){
return true;
}
public function notBroken(){
print('worked');
}
}
Допустим, теперь я делаю:
$obj= new someObject();
$obj->broken();
Учитывая, что вы не можетепередать вызов функции в isset (), (это по ссылке), я ожидаю, что это приведет к ошибке с фатальной ошибкой: PHP Fatal error: Can't use method return value in write context
Это нормально, и ожидается.
Однако, скажем, яТеперь сделайте:
$obj= new someObject();
$obj->notBroken();
Учитывая, что я не нажимаю broken()
где-либо в этом выполнении, и ошибка в broken()
является фатальной ошибкой (а не ошибкой разбора), яне ожидал нормального выхода «сработало». FALSE!Он по-прежнему генерирует фатальную ошибку.
Вопрос:
Помимо просто не написания кода с ошибками, есть ли другие ошибки, которые не являются ошибками разборано все равно вызвать ошибку во время выполнения?Я знаю только о: PHP Fatal error: Can't use method return value in write context
.Есть ли способ обнаружить эти ошибки?Для этого типа ошибки есть специальное имя?