PHP 注意未定義索引

WBOY
發布: 2024-08-29 13:00:59
原創
722 人瀏覽過

注意 PHP 中的未定義索引是當我們嘗試存取實際不存在的值或變數時發生的錯誤。未定義索引是當我們嘗試存取不持久的變數時出現的常見錯誤。例如,我們嘗試存取索引的陣列實際上並不存在,因此在這種情況下,我們將在 PHP 中獲得未定義索引。這裡未定義意味著我們還沒有定義它的值並嘗試存取它。

廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

PHP 注意未定義索引的語法

在php 中沒有為未定義索引定義這樣的語法,因為當我們嘗試存取程式碼中不真正存在的值或變數或沒有為它們分配值時,我們會遇到一種錯誤,我們是嘗試在程式碼中的某個位置存取它的值。

$myarray = array(value1, value2, value3, so on..)
$myarray[value_does_not_exists]
登入後複製

在上面的語法行中,我們嘗試透過傳遞數組中不存在的鍵來存取數組。所以這會在運行時給我們拋出一個未定義的索引錯誤。

讓我們來看一個如何在程式設計時做到這一點的範例:

代碼:

$myarray = array(100, 200, 300, 400)
$myarray[1000]
登入後複製

透過這種方式,我們可以在 PHP 中複製此錯誤,但可以透過使用 PHP 中的 isst() 方法來防止這種情況,使我們的程式碼在這種情況下運作。

注意未定義索引在 PHP 中如何運作?

到目前為止,我們知道未定義的索引是一種異常,或者我們可以說 PHP 中的錯誤。如果我們想要存取程式中不真正存在的變量,就會發生這種情況。這需要處理;否則,將對我們的申請和終止項目造成嚴重問題。我們在 PHP 中定義了一些方法來處理程式中的這類錯誤。

在這裡,我們將看到一段範例程式碼及其工作原理、程式中如何發生以及應如何處理它。

範例:

代碼:

<?php
// Your code here!
$myarray = array('200','300','400', '500', '600', '700', '1000');
echo $myarray[4];
echo $myarray['Hello '];
?>
登入後複製

在上面的程式碼行中,我們建立了一個名為「$myarray」的數組,並使用其中的一些字串整數初始化了它的值。在第二行中,我們嘗試使用分配給它的值來存取數組的變量,並且我們正在使用索引。因此數組中存在索引“4”,因此這一行可以按預期正常工作,但緊接在這一行之後,我們有另一行,我們在其中嘗試透過數組元素的鍵來存取該元素。因此,在這種情況下,我們將收到通知:PHP 中未定義的索引,其中提到了行號。現在我們將了解如何在程式碼中防止這種情況發生;為此,我們在 PHP 中提供了兩種方法,可以在存取陣列中的元素或值之前使用它們。

以下是方法:

1. array_key_exists()

此方法用於在存取鍵值之前檢查鍵是否存在於陣列中。當我們嘗試存取數組元素但我們對此不確定時,可以使用此方法。因此,在使用變數的值之前,我們可以使用此方法檢查元素或鍵是否存在。

此方法採用兩個參數作為輸入參數。第一行是鍵,第二行是陣列本身。

讓我們看看它的方法語法

簽名:

array_key_exists(your_key, your_array)
登入後複製

這裡我們傳遞兩個參數,我們傳遞的鍵將其檢查到整個陣列中。它的傳回類型是Boolean;如果數組中存在該鍵,則傳回 true,否則如果鍵不存在,則傳回 false。

2.伊塞特()

在存取變數的值之前,此方法也會檢查程式中是否設定了變數。它還檢查 NULL 變數。它執行兩件事;首先檢查變數是否已定義,另一個是它不應該為 NULL。

簽名:

isset(variables);
登入後複製

在這裡我們可以傳遞我們的變量,我們想在程式中存取它們之前檢查它們。方法的回傳類型也是Boolean;如果它找到該變數且它不為 NULL,那麼它將傳回與該值相同的 true。如果前面的條件沒有指定,則傳回 False。

PHP 通知未定義索引的範例

以下是 PHP 通知未定義索引的範例:

範例#1

在此範例中,我們嘗試存取不存取陣列的鍵,因此在程式執行時,我們將在 PHP 中收到 Notice Undefined Index 錯誤。

代碼:

<?php
// Your code here!
// creating an array here
$myarray = array(0=>'Hi',1=>'Hello',2=>'To', 3=>'All', 4=>'Stay', 5=>'Safe', 6=>'Enjoy !!');
//try to print values from array
echo $myarray[0]."\n";
echo $myarray[1]."\n";
echo $myarray[2]."\n";
//trying to access the element which does not exists.
echo $myarray['World']."\n";
?>
登入後複製

輸出:

PHP 注意未定義索引

Example #2

To prevent this error while occurring in program execution.

Code:

<?php
// Your code here!
// creating an array here
$myarray = array(0=>'Hi',1=>'Hello',2=>'To', 3=>'All', 4=>'Stay', 5=>'Safe', 6=>'Enjoy !!');
//try to print values from array
echo $myarray[0]."\n";
echo $myarray[1]."\n";
echo $myarray[2]."\n";
//trying to access the element which does not exists.
if(array_key_exists('World', $myarray)){
echo "Key exists in array !!";
}else {
echo "Key does not exists in array !! :)";
}
?>
登入後複製

Output:

PHP 注意未定義索引

Conclusion

Notice Undefined Index is a kind of error we got in PHP when we try to access the non-existing element from the array or in our program. One more case is that it can occur when we try to access a NULL value in the program. So we can use two methods, isset() and array_key_exists() methods in PHP, to overcome this error in the application.

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

相關標籤:
php
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!