Неопределенные сообщения об ошибках индекса в WAMP и PHP - PullRequest
3 голосов
/ 29 августа 2011

Я использую wamp для разработки php-приложения. Моя проблема в том, что каждый раз, когда я вызываю переменную, которая иногда не имеет значения, я получаю сообщение об ошибке, в котором говорится, что это неопределенный индекс. Есть ли способ изменить отчет об ошибках, чтобы не отображать эту ошибку? Я должен использовать isset, чтобы определить, установлен он или нет, прежде чем выводить переменную, но я не хочу этого делать. Есть области моего приложения, которые делают этот метод неэффективным.

Ответы [ 5 ]

3 голосов
/ 29 августа 2011

Если вы не хотите изменять уровень error_reporting, вы должны проверить, существует ли переменная перед ее использованием.Для этого вы можете использовать

 if(isset($var)) 

.Вы можете добавить какую-то функцию, чтобы не писать ее всегда.Пример:

 function getPost($name,$default=null){
     return isset($_POST[$name])?$_POST[$name]:$default;
 }

Использование:

getPost('id');
getPost('name','Not Logged In');
2 голосов
/ 29 августа 2011

Вы можете просто отключить механизм в php.ini.

Эта тема поможет вам.

http://www.wampserver.com/phorum/read.php?2,70609,70700

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

Обновление:

В php.ini изменить

error_reporting = E_ALL to error_reporting = E_ALL & ~ E_NOTICE

0 голосов
/ 25 июля 2014

Файлы PHP.ini находятся в обоих:

bin \ php \ php5.x

и

бен \ Apache \ apache2.x \ Bin

обязательно внесите изменения в версию папки apache .


Также настройка:

display_errors = Off

display_startup_errors = Off

error_reporting = E_ALL

log_errors = On

оставляет ошибки отображаться на клиенте, но позволяет регистрировать их в журнале ошибок.

0 голосов
/ 31 мая 2013

Попробуйте это:

if (! Isset ($ var)) $ var = "";

0 голосов
/ 29 августа 2011

Есть несколько способов обойти это:
error_reporting(0) Используйте это в верхней части вашего скрипта
установите display_errors = Off в php.ini
Используйте '@' перед оператором, который генерируетошибка

Но если вы не пишете что-то тривиальное, вы абсолютно должны использовать array_key_exists или if(!empty($arrayName['key'])) для всего, отправленного пользователем.

...