Недавно я снова начал программировать на PHP, после долгой работы с другими языками, во время которой я разработал более функциональный стиль - который я надеюсь попробовать и сохранить.
Я заметил странное поведение, которое мне удалось отразить в тестовом примере, который, я надеюсь, кто-то может объяснить.
$func = function($item) {
if ($item == 0)
throw new Exception("Can't do 0");
return $item;
};
try {
array_map($func, array(1, 2, 3, 0, 5));
} catch (Exception $ex) {
echo "Couldn't map array";
}
При выполнении кода выше, я вижу следующий вывод:
Предупреждение: array_map (): произошла ошибка при вызове обратного вызова карты в map_closure.php в строке 10
Не удалось отобразить массив
Я могу устранить ошибку с помощью @ на array_map, но в лучшем случае это выглядит хакерским.