В чем разница между E_STRICT и E_ALL в PHP 5.4?

В PHP 5.4, в чем разница между использованием E_STRICT и E_ALL?

Оба одинаковы?


person jlocker    schedule 04.10.2015    source источник


Ответы (2)


В чем разница между использованием E_STRICT и E_ALL в PHP 5.4.

Что ж:

5.4.0   E_STRICT became part of E_ALL.
5.3.0   E_DEPRECATED and E_USER_DEPRECATED introduced.
5.2.0   E_RECOVERABLE_ERROR introduced.
5.0.0   E_STRICT introduced (not part of E_ALL).

Пример:

<?php

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

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Руководство по PHP: error_reporting

Аналогичный вопрос ответил на SO и здесь.

person DirtyBit    schedule 04.10.2015

E_ALL покажет все уровни ошибок, E_STRICT, представленный в PHP 5.0, покажет предложение/уведомление о строгом стандарте кодирования/лучшей практике. Поскольку PHP 5.4 E_STRICT был включен в E_ALL.

На основе руководства PHP:

В PHP 5 доступен новый уровень ошибки E_STRICT. До PHP 5.4.0 E_STRICT не был включен в E_ALL, поэтому в PHP ‹ 5.4.0 вам пришлось бы явно включать этот тип уровня ошибок. Включение E_STRICT во время разработки имеет некоторые преимущества. В сообщениях STRICT содержатся предложения, которые могут помочь обеспечить наилучшую совместимость и совместимость вашего кода с последующими версиями. Эти сообщения могут включать в себя такие вещи, как статический вызов нестатических методов, определение свойств в определении совместимого класса, когда они определены в используемом свойстве, и до версии PHP 5.3 некоторые устаревшие функции выдавали ошибки E_STRICT, такие как назначение объектов по ссылке при создании экземпляра.

person Aggie    schedule 04.10.2015