Отключить устаревшие ошибки PHP 5.3 - PullRequest
119 голосов
/ 10 мая 2010

Мой сервер работает под управлением php 5.3, и моя установка wordpress выкладывает на меня эти ошибки, что приводит к сбою my session_start ().

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 647

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 662

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 669

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 676

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 712

Это раздражает, но я не хочу отключать отчеты об ошибках на экране. Как отключить эти надоедливые устаревшие предупреждения?

Я использую Wordpress 2.9.2.

Ответы [ 9 ]

194 голосов
/ 10 мая 2010

Вы можете сделать это в коде, вызвав следующие функции.

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

или

error_reporting(E_ALL ^ E_DEPRECATED);
22 голосов
/ 21 августа 2010

Мне нужно было адаптировать это к

error_reporting = E_ALL & ~E_DEPRECATED
19 голосов
/ 24 февраля 2012

Чтобы получить только ошибки, которые приводят к прекращению работы приложения:

error_reporting(E_ALL ^ (E_NOTICE | E_WARNING | E_DEPRECATED));

Это перестанет отображать уведомления, предупреждения и устаревшие ошибки.

13 голосов
/ 09 октября 2011

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

error_reporting(0); // Turn off warning, deprecated, 
                    // notice everything except error

Кто-то может найти это полезным ......

11 голосов
/ 28 марта 2014

Я только что столкнулся с подобной проблемой, когда плагин SEO выдавал большое количество предупреждений, из-за которых использование моего блога превышало лимит плана.

Я обнаружил, что вы должны включить команду error_reporting после , которую требуется wp-settings.php в файле wp-config.php:

   require_once( ABSPATH .'wp-settings.php' );
   error_reporting( E_ALL ^ ( E_NOTICE | E_WARNING | E_DEPRECATED ) );

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

Протестировано на WordPress 3.8, но я думаю, что это работает для каждой установки.

8 голосов
/ 24 января 2013

В файле wp-config.php вы можете найти константу WP_DEBUG, убедитесь, что она установлена ​​в false.

define('WP_DEBUG', false);

Это для WordPress 3.x

6 голосов
/ 10 мая 2010

Вы должны отредактировать файл конфигурации php. Пройти линию

error_reporting = E_ALL

и заменить на error_reporting = E_ALL ^ E_DEPRECATED

Если у вас нет доступа к файлу конфигурации, вы можете добавить эту строку в файл php wordpress (возможно, headers.php)

error_reporting(E_ALL ^ E_DEPRECATED); 
1 голос
/ 10 февраля 2017

Я склонен использовать этот метод

$errorlevel=error_reporting();
$errorlevel=error_reporting($errorlevel & ~E_DEPRECATED);

Таким образом, я случайно не выключаю то, что мне нужно

0 голосов
/ 16 декабря 2017

эта ошибка возникает при изменении вашей версии php: очень просто подавить это сообщение об ошибке

Чтобы подавить сообщение об УСТАРЕВШЕЙ ошибке, просто добавьте следующий код в файл index.php:

init_set ( 'display_errors', False);

...