2011-07-04 53 views
1

如何輕鬆避免在PHP中發生此錯誤/注意事項?如何避免未定義索引

Notice: Undefined index: test in /var/www/page.php on line 21 

代碼:

$table = 'test'; 
$preset = array(); 
method($preset[$table]); 

陣列$preset存在,但不指定索引

+0

檢查http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index/16971723#16971723用於恕我直言一個更好的答案,我在這個問題 – gts

回答

11

檢查是否存在使用array_key_exists

$table = 'test'; 
$preset = array(); 
if(array_key_exists($table, $preset)) { 
    method($preset[$table]); 
}else{ 
    // $table doesn't exist in $preset 
} 

或者,你可以使用isset

$table = 'test'; 
$preset = array(); 
if(isset($preset[$table])) { 
    method($preset[$table]); 
}else{ 
    // $table doesn't exist in $preset 
} 
+6

+ 1介紹了對於對應於NULL值的數組鍵,isset()不返回TRUE,而array_key_exists()則返回TRUE。 – stefgosselin

3

使用if (isset($preset[$table]))

0

或者你可以先檢查是否使用isset存在鍵()。

if (isset($preset[$table])) 

如果存在則返回true,否則返回false。