Обычно php-скрипт продолжает работать после E_NOTICE, есть ли способ поднять это на фатальную ошибку в контексте функции, то есть мне нужно только выходить извещения только в моих функциях, но не в основных функциях php, которые глобально.
Вы можете создать собственный обработчик ошибок, чтобы поймать E_NOTICE
s.
Это непроверено, но должно идти в правильном направлении:
function myErrorHandler($errno, $errstr, $errfile, $errline) { if ($errno == E_USER_NOTICE) die ("Fatal notice"); else return false; // Leave everything else to PHP's error handling }
затем установите его как новый пользовательский обработчик ошибок с помощью set_error_handler()
при вводе вашей функции и восстановите обработчик ошибок PHP при его выходе:
function some_function() { // Set your error handler $old_error_handler = set_error_handler("myErrorHandler"); ... do your stuff .... // Restore old error handler set_error_handler($old_error_handler); }
Вы используете собственный обработчик ошибок, используя set_error_handler()
<?php function myErrorHandler($errno, $errstr, $errfile, $errline) { if ($errno == E_USER_NOTICE) { die("Died on user notice!! Error: {$errstr} on {$errfile}:{$errline}"); } return false; //Will trigger PHP's default handler if reaches this point. } set_error_handler('myErrorHandler'); trigger_error('This is a E_USER_NOTICE level error.'); echo "This will never be executed."; ?>