Недостаток этого варианта: в error_get_last() остаётся результат от интерпретации предыдущего неудачного выражения, а проверок будет сотни
Скрипт в любом случае умрёт при fatal error, и error_get_last поймает лишь его последний вздох, а не продолжит выполнение.
Только тут надо свой shutdown_handler регистрировать, чтобы поймать fatal error — смотрите register_shutdown_function().