Удаление предупреждающих сообщений в PHP

У меня есть код PHP. Когда я запустил его, появится предупреждающее сообщение.

Как я могу удалить/отключить/игнорировать эти предупреждающие сообщения?

Ответ 1

Вы действительно должны исправить все, что вызывает предупреждение, но вы можете контролировать видимость ошибок с error_reporting. Чтобы пропустить предупреждающие сообщения, вы можете использовать что-то вроде:

error_reporting(E_ERROR | E_PARSE);

Ответ 2

Вы можете поместить @ перед вызовом функции для подавления всех сообщений об ошибках.

@yourFunctionHere();

Ответ 3

Чтобы подавить предупреждения, оставив при этом все другие сообщения об ошибках:

error_reporting(E_ALL ^ E_WARNING); 

Ответ 4

Если вы не хотите показывать предупреждения и ошибки, используйте

// Turn off all error reporting
error_reporting(0);

Отчет об ошибках - PHP Manual

Ответ 5

Если вы хотите подавить предупреждения и некоторые другие типы ошибок (например, уведомления) при отображении всех других ошибок, вы можете сделать:

error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE);

Ответ 6

в Core Php, чтобы скрыть предупреждающее сообщение, установите error_reporting (0) в верхней части общего включаемого файла или отдельного файла.

В Wordpress скрыть Предупреждения и Уведомления добавить следующий код в файле wp-config.php

ini_set('log_errors','On');
ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Ответ 7

Не совсем отвечающий на вопрос, но я думаю, что это лучший компромисс в некоторых ситуациях:

У меня появилось предупреждающее сообщение в результате выражения printf() в сторонней библиотеке. Я точно знал, в чем причина: временная работа, в то время как сторонняя сторона исправила свой код. Я согласен с тем, что предупреждения не следует подавлять, но я не мог продемонстрировать свою работу клиенту с появлением предупреждающего сообщения на экране. Мое решение:

printf('<div style="display:none">');
    ...Third-party stuff here...
printf('</div>');

Предупреждение по-прежнему находилось в источнике страницы как напоминание мне, но невидимое для клиента.

Ответ 8

Вы можете подавить предупреждение, используя error_reporting, но гораздо лучший способ - исправить ваш script в на первом месте.

Если вы не знаете, как отредактировать свой вопрос и показать нам строку и предупреждение, которое отображается.

Ответ 9

Я думаю, что лучшим решением является конфигурация .htaccess. Таким образом, вам не нужно изменять код приложения. Вот директивы для Apache2

php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0

Ответ 10

Я делаю это следующим образом в моем php.ini:

error_reporting = E_ALL & ~E_WARNING  & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

Это регистрирует только фатальные ошибки и никаких предупреждений.

Ответ 11

PHP 7.2 предоставляет примеры, которые можно попробовать. Вот фрагмент того, что дано в файле php.ini, начиная со строки 449.

; Common Values:
;   E_ALL (Show all errors, warnings and notices including coding standards.)
;   E_ALL & ~E_NOTICE  (Show all errors, except for notices)
;   E_ALL & ~E_NOTICE & ~E_STRICT  (Show all errors, except for notices and coding standards warnings.)
;   E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR  (Show only errors)
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL

Так что попробуйте с любым из этих вариантов. После внесения изменений перезагрузите сервер и протестируйте сценарии.