Я использую wamp для разработки приложения php. Моя проблема в том, что каждый раз, когда я вызываю переменную, которая иногда не имеет значения, я получаю сообщение об ошибке, в котором говорится, что это неопределенный индекс. Есть ли способ изменить отчет об ошибке, чтобы не отображать эту ошибку? Я должен использовать isset, чтобы определить, установлен ли он или нет, прежде чем я выведу переменную, но я не хочу этого делать. Есть области моего приложения, которые делают этот метод неэффективным.
Отчеты об ошибках неопределенного индекса в WAMP и PHP
Ответы (5)
Если вы не хотите менять уровень error_reporting, вы должны проверить, существует ли переменная, прежде чем использовать ее. Вы можете использовать
if(isset($var))
для этого. Вы можете добавить какую-то функцию, чтобы не писать ее постоянно. Пример:
function getPost($name,$default=null){
return isset($_POST[$name])?$_POST[$name]:$default;
}
Использование:
getPost('id');
getPost('name','Not Logged In');
Вы можете просто отключить механизм в php.ini.
Эта ветка вам поможет.
http://www.wampserver.com/phorum/read.php?2,70609,70700
Но, как правило, лучше позаботиться о неопределенных переменных, поскольку они могут избавить вас от некоторых проблем во время выполнения.
Обновлять:
В php.ini изменить
error_reporting = E_ALL в error_reporting = E_ALL & ~E_NOTICE
Есть несколько способов обойти это:error_reporting(0)
Используйте это в начале вашего скрипта
установите display_errors = Off
в php.ini
Используйте '@' перед оператором, который генерирует ошибку
Но если вы не пишете что-то тривиальное, вы абсолютно должны использовать array_key_exists
или if(!empty($arrayName['key']))
для всего, что отправляет пользователь.
Попробуй это:
если(!isset($var)) $var="";
Файлы PHP.ini находятся в обоих:
bin\php\php5.x
а также
bin\apache\apache2.x\bin
обязательно внесите изменения в версию папки apache.
Также установка:
display_errors = Выкл.
display_startup_errors = Выкл.
error_reporting = E_ALL
log_errors = Вкл
не позволяет отображать ошибки на клиенте, но по-прежнему позволяет записывать их в журнал ошибок.