<?php
$error_handler = function($level,$message) {
echo "Main error handler: $message \n";
// ...
// imagine somewhere inside the error handler a log writer is called
// which uses it's own error handler for failing file operations
// which is what Zend\Log\Writer\Stream does with Zend\StdLib\ErrorHandler
$nested_error_handler = function ($level,$message) {
echo "Nested error handler: $message \n";
};
set_error_handler($nested_error_handler,E_WARNING);
//strpos(); //Produce a warning inside the log writer
restore_error_handler(); //restore the error handler to $eh after log written
// ...
return true;
};
set_error_handler($error_handler);
trigger_error('Some message',E_USER_NOTICE);
/* expected output:
Main error handler: Some message
*/
trigger_error('Some other message',E_USER_NOTICE);
/* expected output:
Main error handler: Some other message
*/
Main error handler: Some message
Main error handler: Some other message
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Main error handler: Some message
Main error handler: Some other message