<?php
function exception_error_handler($severity, $message, $file, $line) {
if (!(error_reporting() & $severity)) {
// This error code is not included in error_reporting
return;
}
throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler("exception_error_handler");
$o=new StdClass();
$o->f=function(){
echo "i ran!";
};
try{
$o->f();
}catch(Throwable $ex){
echo 'didn\'t work: $o->f()',PHP_EOL;
}
try{
call_user_func([$o,'f']);
}catch(Throwable $ex){
echo 'didn\'t work: call_user_func([$o,\'f\'])',PHP_EOL;
}
try{
get_object_vars($o)['f']();
}catch(Throwable $ex){var_dump($ex);
echo 'didn\'t work: get_object_vars($o)[\'f\']()',PHP_EOL;
}
preferences:
60.54 ms | 402 KiB | 5 Q