php error_reporting E_STRICT

Я только что поменял хозяев. Все настроено и работает, за исключением того, что я получаю массу ошибок, которые начинаются со строгих стандартов PHP:

Я отключил E_STRICT в php.ini. Когда я запускаю phpinfo() для проверки, он отображается как выключенный. Это показывает

error_reporting = 22519 = 01010111 11110111. E_STRICT — бит 11 (2048).

Мой первый вопрос: возможно ли, чтобы эти ошибки как-то генерировались без E_STRICT?

Мой вызов phpinfo() находится в корневом каталоге. Но я также проверил каждый каталог между root и каталогами, в которых выполняются эти функции. Нет ни другого php.ini, ни файла .htaccess с конфликтующим вызовом suPHP_ConfigPath.

Эти PHP-файлы вызываются каждый раз, когда кто-то нажимает ссылку или кнопку на моем сайте, поэтому я получаю МБ в час или что-то в этом роде из этих проклятых предупреждений. Но я не могу понять, как я их получаю, если E_STRICT выключен.

У кого-нибудь есть яркая идея, что еще я должен проверить?


person mikekehrli    schedule 18.12.2015    source источник


Ответы (2)


Лучший Микекерли,

Попробуйте добавить:

error_reporting(E_ERROR | E_WARNING | E_PARSE);

в начале вашего скрипта и посмотрите, получаете ли вы все еще строгие сообщения.

person Perrykipkerrie    schedule 18.12.2015
comment
Казалось, что на самом деле он генерирует больше ошибок, чем раньше. Но все они начинаются со строгих стандартов PHP: обратите внимание, возможно, просто в данный момент было больше активности. - person mikekehrli; 18.12.2015
comment
попробуйте error_reporting(0), тогда у вас не должно быть ошибок (пока только для отладки) - person Perrykipkerrie; 18.12.2015
comment
Кроме того, я нашел эту страницу, возможно, она вам пригодится [ссылка] (stackoverflow.com/questions/1248952/) - person Perrykipkerrie; 18.12.2015
comment
Все еще получаю ошибки. Откуда они могли прийти? Я покажу пример ошибки здесь: [18-Dec-2015 02:45:56 America/Detroit] Строгие стандарты PHP: объявление категорийParser::identifyPage() должно быть совместимо с SSUParser::identifyPage($uri_parts) в / home/fuelsave/public_html/includes/classes/ssu/plugins/parsers/categories.php в строке 160. Теперь в category.php я поместил вверху, но в части тела php error_reporting(0);. Сразу под ним было начало определения класса. - person mikekehrli; 18.12.2015
comment
Что-то мне не хватает. По всем правилам я сделал действия, которые должны отключить эти ошибки, но они не отключаются. Я просто не знаю, чего мне не хватает. - person mikekehrli; 18.12.2015
comment
Эй, еще кое-что. Я просмотрел файл category.php, и номер iine, о котором сообщает ошибка, является последней строкой в ​​файле. Что это обозначает? Я думаю, может быть, ошибка происходит где-то еще, но о ней неправильно сообщают для category.php. Возможно ли это? - person mikekehrli; 18.12.2015
comment
Если на вашем предыдущем хосте все работало, а сейчас нет, попробуйте связаться с новым хостом, возможно у них есть какая-то настройка, что вы не можете изменить эту отчетность - person Perrykipkerrie; 18.12.2015
comment
Что вы сделали для этого (другим пользователям будет приятно, если вы опубликуете решение): D - person Perrykipkerrie; 18.12.2015
comment
Я узнал, где находится файл с классом, которому должно соответствовать сообщение об ошибке, и установил error_reporting(0); в этом файле. Это остановило ошибки. Даже подумал, что имя файла никогда не упоминалось ни в одной из ошибок. Думаю, теперь я могу включить нормальную отчетность об ошибках, а строгую выключить только там, где это нужно. - person mikekehrli; 18.12.2015
comment
Я опубликую решение, когда я закончу все это. Но это был крепкий орешек. - person mikekehrli; 18.12.2015
comment
Ха-ха, но некоторые мысли, можно ли решить эту строгую проблему с ошибками? так как скрытие ошибки не исправит ошибку;). Кстати, большие проблемы, которые требуют много времени, часто являются теми, в которых вам не нужно много менять в коде xD. Возможно, найдите в своем проекте error_reporting или display_errors и удалите их все, создав один глобальный error_reporting в начале вашего скрипта. - person Perrykipkerrie; 18.12.2015

Хорошо, проблема решена.
Но изменение error_reporting в файле, о котором сообщалось в ошибке, ничего не изменило.

Мне нужно было найти файл с классом, который, по словам ошибки, находился в конфликте, и когда я изменил error_reporting в этом файле, ошибки прекратились.

Обратите внимание, что изменение переменной error_reporting php.ini не помогло изменить эту ситуацию. Только изменение его в самом скрипте решило проблему.

person mikekehrli    schedule 18.12.2015