PHP 5 отключить ошибку строгих стандартов



Мне нужно настроить мой PHP скрипт в верхней части, чтобы отключить отчеты об ошибках для строгих стандартов.

кто-нибудь может помочь ?

185   7  

7 ответов:

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

# in your PHP code:
ini_set('display_errors', '0');     # don't show any errors...
error_reporting(E_ALL | E_STRICT);  # ...but do log them

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

без ошибок.

error_reporting(0);

или просто не строгое

error_reporting(E_ALL ^ E_STRICT);

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

error_reporting(-1);

все вышеуказанные решения верны. Но, когда мы говорим о нормальном PHP приложении, они должны быть включены в каждую страницу, которую он требует. Способ решить эту проблему, это через .htaccess в корневой папке. Просто, чтобы скрыть ошибки. [Поместите одну из следующих строк в файл]

php_flag display_errors off

или

php_value display_errors 0

далее, чтобы установить сообщение об ошибке

php_value error_reporting 30719

Если вам интересно, как значение 30719 пришел, E_ALL (32767), E_STRICT (2048) на самом деле константа, которая содержит числовое значение и (32767 - 2048 = 30719)

значение по умолчанию error_reporting флаг E_ALL & ~E_NOTICE если не установлен в php.Ини. Но в некоторых установках (особенно в установках, ориентированных на среды разработки) есть СОСТАВ E_ALL | УРОВНЯ E_STRICT установить в качестве значения этот флаг (это рекомендуемое значение при разработке). В некоторых случаях, особенно когда вы захотите запустить некоторые проекты с открытым исходным кодом, которые были разработаны до PHP 5.3 era и еще не были разработаны обновлено с лучшими практиками, определенными PHP 5.3, в вашей среде разработки вы, вероятно, столкнетесь с получением некоторых сообщений, таких как вы получаете. Лучший способ справиться с этой ситуацией, это установить только состав e_all как значение error_reporting флаг, либо в php.ini или код (вероятно, в переднем контроллере, как индекс.php в web-root следующим образом:

if(defined('E_STRICT')){
    error_reporting(E_ALL);
}

в php.ini set:

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

WordPress

Если вы работаете в среде wordpress, Wordpress устанавливает уровень ошибок в файле wp-includes/load.PHP в функции wp_debug_mode(). Поэтому вам нужно изменить уровень после вызова этой функции ( в файле, не зарегистрированном в git, так что это только разработка ), или либо изменить непосредственно error_reporting() вызов

Я не видел ответа, который чист и подходит для готового к производству программного обеспечения, поэтому здесь он идет:

/*
 * Get current error_reporting value,
 * so that we don't lose preferences set in php.ini and .htaccess
 * and accidently reenable message types disabled in those.
 *
 * If you want to disable e.g. E_STRICT on a global level,
 * use php.ini (or .htaccess for folder-level)
 */
$old_error_reporting = error_reporting();

/*
 * Disable E_STRICT on top of current error_reporting.
 *
 * Note: do NOT use ^ for disabling error message types,
 * as ^ will re-ENABLE the message type if it happens to be disabled already!
 */
error_reporting($old_error_reporting & ~E_STRICT);


// code that should not emit E_STRICT messages goes here


/*
 * Optional, depending on if/what code comes after.
 * Restore old settings.
 */
error_reporting($old_error_reporting);
    Ничего не найдено.

Добавить ответ:
Отменить.