Notice: Constant DIR_FS_CATALOG already defined
Я уже прокомментировал
display_errors
вphp.ini
, но не работает.Как я делаю PHP для не вывода таких вещей к браузерам?
ОБНОВЛЕНИЕ
Я поместил
display_errors = Off
там, но это все еще сообщает о таких уведомлениях,Действительно ли это - проблема с PHP 5.3?
Создание отчетов о многочисленном Стеке вызовов также..
Вы можете установить display_errors
на 0
или использовать функцию error_reporting ()
.
Однако уведомления раздражают (я могу отчасти посочувствовать ), но они служат определенной цели. Вы не должны определять константу дважды, второй раз не сработает, и константа останется неизменной!
Я считаю, что комментирование display_errors в php.ini не сработает, потому что по умолчанию включено. Вместо этого вы должны установить для него значение «Выкл.».
Не забудьте перезапустить Apache, чтобы изменения конфигурации вступили в силу.
Также обратите внимание, что, хотя вы можете установить display_errors во время выполнения, его изменение здесь не влияет на FATAL ошибки.
Как отмечали другие, в идеале во время разработки вы должны работать с error_reporting на максимально возможном уровне и включенным display_errors. Эти ошибки, предупреждения, уведомления и строгие советы по кодированию, которые раздражают, когда вы только начинаете, складываются и позволяют вам стать лучшим кодировщиком.
Вы можете проверить, определена ли уже константа, используя:
<?php
if (!defined('MYCONST'))
define('MYCONST', 'Weeha!');
?>
Вы можете установить ini_set ('display_errors', 0);
в своем скрипте или определить, какие ошибки вы хотите отображать, с помощью error_reporting ()
.
Я обнаружил этот трюк недавно. Врежуйте @ в начале строки, которая может привести к предупреждению/ошибке.
Словно по волшебству, они рассеиваются.
Из документации PHP ( error_reporting ):
<?php
// Turn off all error reporting
error_reporting(0);
?>
Другие интересные параметры для этой функции:
<?php
// 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
// This is the default value set in php.ini
error_reporting(E_ALL & ~E_NOTICE);
// For PHP < 5.3 use: 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);
?>
не вызывая ошибок:
defined('DIR_FS_CATALOG') || define('DIR_FS_CATALOG', 'whatever');
Если это действительно необходимо, измените отчет об ошибках с помощью error_reporting() на E_ALL^E_NOTICE.