2013-06-13 4 views
0

Я получаю следующую ошибку в php: Notice: Undefined index: panel_num.Примечание: Неопределенный индекс с циклом while

Я думаю, что нужно использовать isset(), но я не могу заставить его работать с while

global $d; 
$i = 1; 
while($i <= $d['panel_num']){ 
$options[] = array(
         "name" => "Panel".$i, 
         "id" => "panel_".$i, 
         "std" => "", 
         "type" => "panel"); 
$i++; 
} 

Что такое правильный способ решить эту проблему?

+0

Массив '$ d', очевидно, не содержит того, что вы ожидаете от него. 'print_r ($ d)', чтобы увидеть, что на самом деле там, и если ключ 'panel_num' не существует, либо выйдите из операции, либо используйте значение по умолчанию. –

+1

Что в '$ d'? сделайте 'var_dump ($ d)' и посмотрите, как он выглядит. – andrewsi

ответ

1

Я думаю, вам просто нужно проверить isset() и не empty$d['panel_num']

global $d; 
if(isset($d['panel_num']) && !empty($d['panel_num'])) 
{ 
    $i = 1; 
    while($i <= $d['panel_num']){ 
    $options[] = array(
        "name" => "Panel".$i, 
        "id" => "panel_".$i, 
        "std" => "", 
        "type" => "panel"); 
    $i++; 
    } 
} 

Таким образом, вы избежите назвать ваш переменная, если она не установлена ​​или она пуста

+0

То, что мне было нужно. Спасибо! – user387990

+0

@ пользователь387990 добро пожаловать! – Fabio

1

Проверьте, чтобы увидеть, если эта переменная установлена ​​перед использованием:

global $d; 
if (isset($d['panel_num'])) 
{ 
    $i = 1; 
    while($i <= $d['panel_num']){ 
    $options[] = array(
         "name" => "Panel".$i, 
         "id" => "panel_".$i, 
         "std" => "", 
         "type" => "panel"); 
    $i++; 
    } 
} 
Смежные вопросы