Я начну с того, что напишу, что видел подобные вопросы и попробовал предложенные решения.
Я запускаю cli, когда я специально помещаю ошибку разбора в php-файл, я не получаю ошибку в stdOut.
Я использую следующие конфигурации:
22527 для сообщения об ошибке
ini_set('error_reporting', E_ALL|E_STRICT);
PHP 5.5.20 (cli) (built: Jan 9 2015 11:20:56)
php -i | grep error
display_errors => STDOUT => STDOUT
display_startup_errors => Off => Off
error_append_string => no value => no value
error_log => no value => no value
error_prepend_string => no value => no value
error_reporting => 22527 => 22527
html_errors => Off => Off
ignore_repeated_errors => Off => Off
log_errors => Off => Off
log_errors_max_len => 1024 => 1024
track_errors => Off => Off
xmlrpc_error_number => 0 => 0
xmlrpc_errors => Off => Off
ДОПОЛНЕНИЕ: Если я добавлю свой собственный фатальный обработчик:
function fatal_handler() {
$error = error_get_last();
if ($error !== null) {
echo ("\n\nERROR occured!\nFile [{$error['file']}].\nLine: [{$error['line']}].\nMessage: [{$error['message']}]\n\n");
}
exit(1);
}
register_shutdown_function("fatal_handler");
Я вижу ошибку в stdio.
Ниже приведен пример кода (с ошибкой синтаксического анализа), который не выдает ошибки для меня
class A{
const AAA = 'aaa';
static public function Result(A::AAA){
}
}
error_reporting => 22527 => 22527
эквивалентно E_ALL & ~E_DEPRECATED & ~E_STRICT
,
использование -1
или же E_ALL
уровень ошибки (E_ALL | E_STRICT
в PHP 5.4), чтобы показать все ошибки.
Установите его в INI-файл php.ini
,
error_reporting = -1
Следующее не будет работать, потому что код содержит ошибку разбора, поэтому ini_set()
никогда не звонят.
<?php
ini_set('error_reporting', -1)
class A
{
const AAA = 'aaa';
static public function Result(A::AAA)
{
}
}
Других решений пока нет …