2010-08-16 3 views
1

У меня есть переменная в PHP-коде, который находится в цикле, и, хотя цикл работает, иногда становится неопределенным. У меня есть оператор if, который проверяет, определена ли переменная, поэтому неопределенная переменная не является проблемой, однако проблема состоит в том, что непрерывная эта переменная является неопределенными сообщениями, которые генерируются сервером на моей веб-странице. Есть ли способ избавиться от этих раздражающих беспорядков? Спасибо!Как отключить неопределенное сообщение? PHP

+0

Проводка кода поможет получить хороший ответ – balupton

ответ

0

Этот код в верхней части страницы отключен error reporting.

error_reporting(0); 

Если вы просто хотите, чтобы скрыть использование уведомления:

error_reporting(E_ALL^E_NOTICE); 

Но фиксируя ошибка будет умнее, что нужно сделать.

0

Это функция я использую. Может быть изменен, чтобы возвращать все виды вещей и дает proper credit where credit is due.

/** 
* Defines an on the fly alternative to echo content when variable is not available 
* 
* https://stackoverflow.com/questions/376623/php-printing-undefined-variables-without-warning 
* 
* @param object $variable 
* @param object $default [optional] 
* @return 
*/ 
function ifsetor(&$variable, $default = false, $pre = false, $pos = false) { 

    // if variable is a boolean auto returns the boolean 
    if(is_bool($variable)) return $variable; 

    // if variable is string checks if we're adding somehing before or not 
    if(isset($variable)) 
     $tmp = $pre.$variable.$pos; 
    else 
     $tmp = $default; 

    return $tmp; 
} 
4

Определить переменную.

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

Действительно. Попытка доступа к переменным, которые не были определены, является ужасной практикой, которая приведет только к большим (худшим) ошибкам. Исправьте причину, а не симптомы.

0

Определение переменной не означает

define ('SOME_VAR', "with a value") 
//or you can add ,true to the end 
define ('SOME_VAR2', "with a value",true)//true means case sensitive 

выше будет установлено значение, которое не может быть изменено таким образом, что это на самом деле не является переменной. Устранение ошибки сервера имеет много способов, поскольку переменной просто не присвоено видимое или действительное значение. Нуль является допустимым значением, а также «».

Я бы предложил попробовать установить значения в нуль, а затем выполнить тест для непустого. Используйте isset() {} самостоятельно как тест без условных выражений if, прежде чем вы запустите и/или попробуете запустить свой тест/цикл установки.

 if (!isset($someVar)) 
     { 
     $someVar = NULL;//or use a "valuestring" 
     } 

Все условный тест, более конкретно Исеть() оператор возвращает истинное или ложное, то есть тест вернулся верно, если существует значение. null обычно исправляет вашу проблему.

Смежные вопросы