Почему бы не вывести, надеюсь, результат PHP7 с использованием метода try and catch?

В PHP7 env у меня есть следующий код:

try {
    echo strlen([123]);
} catch (Exception $e) {
    echo 'error...';
}

Поскольку [123] не string, я хочу, чтобы он выводил error..., но он выводит:

Warning: strlen() expects parameter 1 to be string, array given

Почему?


person thinkerou    schedule 20.04.2016    source источник
comment
Потому что предупреждение не является исключением, так же как автомобильное колесо не Юпитер и тому подобное.   -  person Mjh    schedule 20.04.2016
comment
Вам нужно добавить declare(strict_types=1); в начало файла, чтобы сделать это ошибкой. (Вам нужно будет поймать TypeError или Error или Throwable вместо Exception,)   -  person NikiC    schedule 20.04.2016
comment
Хорошо , Спасибо Mjh и NikiC. Can I try/catch a warning? получили ответы.   -  person thinkerou    schedule 21.04.2016