Блоки try-catch в PHP: способны ли они перехватывать недопустимые типы arg?
Background: Предположим, у меня есть следующий явно неправильный PHP:
try{
$vtest = '';
print(array_pop($vtest));
}catch(Exception $exx){}
Чтобы он работал с array_pop, $ vtest, очевидно, должен быть массивом, а не строкой. Тем не менее, когда я запускаю этот код, появляется предупреждение. Я не хочу этого, я просто хочу, чтобы код молча провалился.
Question: Есть ли что-то особенное в PHP try-catch по сравнению с другими языками, которые заставляют это не работать?
Disclaimer: Just for reference, it is true there are other ways to handle this situation in PHP, but these are undesirable. The goal here is to avoid:
The "at-sign" trick:
$vtest = '';
print(@array_pop($vtest)); // <-- would like to avoid this
Type Casting:
$vtest = '';
$vtest = (array)$vtest;
print(array_pop($vtest));