Что такое 22527 в error_reporting 22527 из phpinfo

В моем локальном dev env я использую PHP Version 5.3.3-1ubuntu9.2.

Теперь, когда я вижу error_reporting, значение равно 22527.

Что такое 22527?

Я проверил http://www.php.net/manual/en/errorfunc.constants.php , но я не смог найти номер.

Может ли кто-нибудь сказать мне, что это?

Мне нужно изменить его на E_ALL | E_STRICT?

Заранее спасибо.

Related of "Что такое 22527 в error_reporting 22527 из phpinfo"

Это значение является фактически растровой маской , суммой констант.

Итак, 22527

  16384 E_USER_DEPRECATED + 4096 E_RECOVERABLE_ERROR + etc... 

В вашем случае это E_ALL & ~E_DEPRECATED , он отображает каждую ошибку, кроме E_DEPRECATED и E_STRICT (поскольку E_STRICT не включен в E_ALL )

Когда вы OR или две или более константы определены здесь , вы получаете значение 22527 . Вот как вы его декодируете (если вам интересно):

 <?php $error_number = 22527; $error_description = array( ); $error_codes = array( E_ERROR => "E_ERROR", E_WARNING => "E_WARNING", E_PARSE => "E_PARSE", E_NOTICE => "E_NOTICE", E_CORE_ERROR => "E_CORE_ERROR", E_CORE_WARNING => "E_CORE_WARNING", E_COMPILE_ERROR => "E_COMPILE_ERROR", E_COMPILE_WARNING => "E_COMPILE_WARNING", E_USER_ERROR => "E_USER_ERROR", E_USER_WARNING => "E_USER_WARNING", E_USER_NOTICE => "E_USER_NOTICE", E_STRICT => "E_STRICT", E_RECOVERABLE_ERROR => "E_RECOVERABLE_ERROR", E_DEPRECATED => "E_DEPRECATED", E_USER_DEPRECATED => "E_USER_DEPRECATED", E_ALL => "E_ALL" ); foreach( $error_codes as $number => $description ) { if ( ( $number & $error_number ) == $number ) { $error_description[ ] = $description; } } echo sprintf( "error number %d corresponds to:\n%s", $error_number, implode( " | ", $error_description ) ); ?> 

Вывод:

 error number 22527 corresponds to: E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_RECOVERABLE_ERROR | E_USER_DEPRECATED 

НИКОГДА не используйте числовое значение, чтобы установить отчет об ошибках, поскольку значение этого значения может измениться, но значение констант (например, E_ALL, E_STRICT и т. Д.), Вероятно, не будет:

Новый уровень error_reporting. Он принимает либо битмаску, либо именованные константы. Использование именованных констант настоятельно рекомендуется для обеспечения совместимости для будущих версий. По мере добавления уровней ошибок диапазон целых чисел увеличивается, поэтому старые уровни ошибок на основе целого числа не всегда будут вести себя так, как ожидалось .

(и обратите внимание, что с PHP 5.4 E_ALL теперь включает E_STRICT)

Если вы хотите, чтобы строжайшая отчетность вечно и вечно, вы можете установить error_reporting на очень большое число, чтобы гарантировать (?), Что вы будете сообщать о всех ошибках навсегда :

Использование PHP-констант вне PHP, как и в httpd.conf, не имеет никакого полезного значения, поэтому в таких случаях требуются целые значения. И поскольку уровни ошибок будут добавляться с течением времени, максимальное значение (для E_ALL), скорее всего, изменится. Таким образом, вместо E_ALL рассмотрим использование большего значения для покрытия всех битовых полей отныне и в будущем, числовое значение, например 2147483647 (включает все ошибки, а не только E_ALL).

Проверьте свой php.ini на значение error_reporting в формате чтения PHP-констант. Кажется, что функция phpinfo () всегда показывает числовое значение, а не показывает константы.

Но, лично, я оставляю php.ini со значениями по умолчанию для сообщений об ошибках. Вместо этого я просто помещал функцию сообщения об ошибках в начало любого скрипта php, над которым я работаю, чтобы переопределить значения по умолчанию. например:

 error_reporting(E_ALL | E_STRICT);