首頁  >  文章  >  後端開發  >  php的未定義索引如何解決

php的未定義索引如何解決

(*-*)浩
(*-*)浩原創
2019-10-12 13:58:1510662瀏覽

php的未定義索引如何解決

通常會出現未定義的索引問題是由於數組沒有這個值造成的,數組分為關聯數組和索引數組,索引數組是數字下標;關聯數組是鍵值下標。

$POST['id']之所以報未定義索引是因為$POST這個陣列裡沒有包含下標鍵值為id的值。 (建議學習:PHP影片教學

解決方法: 

判斷陣列中是否包含下標鍵值為id的值,如果沒有,則回傳錯誤訊息,如何判斷呢,最簡單的方法就是用函數isset來判斷,如isset($POST['id']),存在則傳回true,反之則為false;

#。三元判斷法,不存在給一個預設的數值, 如$POST['id'] = isset($POST['id'])?$POST['id']:"1";

#當您(或PHP)嘗試存取陣列的未定義索引時,會出現此通知。

處理問題的方法:

在存取索引之前檢查索引是否存在。為此您可以使用isset()或array_key_exists():

//isset()$value = isset($array['my_index']) ? $array['my_index'] : '';
//array_key_exists()$value = array_key_exists('my_index', $array) ? $array['my_index'] : '';

語言建構list()在嘗試存取不存在的陣列索引時可能會產生此內容:

list($a, $b) = array(0 => 'a');//orlist($one, $two) = explode(',', 'test string');

兩個變量用於存取兩個陣列元素,但是只有一個陣列元素index 0,因此這將產生:

注意:未定義的偏移量:1########$_POST/ $ _GET/ $_SESSION可變#########使用時$_POST,上面的注意事項經常出現,$_GET或$_SESSION。 ######對您而言$_POST,$_GET您只需在使用之前檢查索引是否存在。因為$_SESSION您必須確保以會話開始session_start()並且索引也存在。 ###

以上是php的未定義索引如何解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn