Фон: Предположим, что у меня есть следующий явно неверный PHP:
try{
$vtest = '';
print(array_pop($vtest));
}catch(Exception $exx){}
Чтобы работать с array_pop, $vtest, очевидно, должен быть массивом, а не строкой. Тем не менее, когда я запускаю этот код, появляется предупреждение. Я не хочу этого, я просто хочу, чтобы код терпел неудачу.
Вопрос: Есть ли что-то особенное в PHP try-catch по сравнению с другими языками, которые заставляют это работать?
Отказ от ответственности: Просто для справки, правда, есть и другие способы справиться с этой ситуацией в PHP, но это нежелательно. Цель здесь состоит в том, чтобы избежать:
Трюк "at-sign":
$vtest = '';
print(@array_pop($vtest)); // <-- would like to avoid this
Тип:
$vtest = '';
$vtest = (array)$vtest;
print(array_pop($vtest));