error_get_last () возвращает null после set_error_handler (); php 7.0

Следующий код:

$a["x"];//should trigger notice var_dump(error_get_last());//return the error array 

отлично работает и возвращает массив ошибок. но когда я использую set_error_handler, он возвращает null

 function _do_nothing(){} set_error_handler('_do_nothing'); $a["x"];//should trigger notice var_dump(error_get_last());//return null 

Этот код отлично работает на PHP5.4. Я изменил 3 месяца назад на PHP7, и с тех пор я получаю nulls в error_get_last() Я использую функцию выключения, чтобы проверить, произошла ли ошибка, и если это так, чтобы отправить ее разработчику.

  1. Есть ли способ сделать этот код запущенным в PHP7? и make error_get_last () работает с set_error_handler ()?
  2. Любые другие идеи для обхода? и сделать функцию выключения получить последнюю ошибку? Я использую CodeIgniter и предпочитаю не взламывать их внутренний код.

Related of "error_get_last () возвращает null после set_error_handler (); php 7.0"

Это нормальное поведение, потому что в вашем примере ошибка уже обрабатывается _do_nothing() , поэтому error_get_last() возвращает null

если вы удалите set_error_handler('_do_nothing') ошибка больше не будет обрабатываться, и вы снова получите последнюю ошибку

 function _do_nothing(){} //set_error_handler('_do_nothing'); $a["x"];//should trigger notice var_dump(error_get_last());//return array() "Undefined variable: a" 

Такое поведение в PHP5 аналогично, как и в PHP7