Ответ 1
Ну, я нашел это в PHP Wiki. Я думаю, что это старо, но я думаю, что это все еще относится к Zend3:
Не использовать zend_error
zend_error() следует использовать только внутри движка. Внутри PHP-расширений могут использоваться только функции PHP-ошибок shoudl. Обычно php_error_docref() - лучший выбор. php_error_docref() расширяет сообщение об ошибке дополнительной информацией, например, текущим именем функции и, если необходимо, будет правильно удалять выходные данные. zend_error() используется Zend Engine из-за модульной архитектуры PHP, где Zend Engine и TSRM должны компилироваться без других частей PHP. Следовательно, двигатель не может использовать API уровня PHP. Это ограничение не существует в расширениях.
Это говорит мне, что zend_error был написан для использования в движке и не был разработан как один из инструментов для использования в расширениях. По этой причине вы вряд ли найдете документацию, в которой будут описаны детали, о которых вы просите, и даже если она работает надежно для вас, она не может продолжать это делать.