簡體   English   中英

PHP:帶有NULL值的不明索引

[英]PHP: Unidentified Index with NULL value

我已經嘗試了所有方法,但無法使此通知消失。

我有一個text input ,顯示的是$variable的內容,該內容正在從數據庫中獲取,並且具有NULL值或整數值。

當該值為NULL時,使用此方法,將得到1個未識別索引的錯誤

if(isset($data['variable'])) { $variable = $data['variable']; }
else { $variable = numberFormat($data['variable']); } 

當該值為NULL時,使用此方法,將得到2個未識別索引的錯誤

if($data['variable'] == NULL) { $variable = $data['variable']; } 
else { $variable = numberFormat($data['variable']); }

任何人都可以闡明如何擺脫這些“通知”嗎? 謝謝!

您可能想查看$data變量是否可用。 如果該值為null,則無法訪問不存在的變量中的元素。

if (isset($data)) {
    if(isset($data['variable'])) { $variable = $data['variable']; }
    else {
        //THIS MAKES NO SENSE. $data['variable'] does not exist.
        //$variable = numberFormat($data['variable']);
        //You can put something else in here, however
        $variable = "";
    } 
}

其次,在$data['variable']不存在時訪問它是沒有意義的,因為...好吧,我不存在!

我想$data['variable']不存在。 在第二個示例中,您會遇到2個錯誤,因為您沒有使用isset()來處理未設置的變量。

不會從MySQL數據庫檢索null值,因此未設置任何可能包含一個的變量。

在您的第一個代碼段中,您正在對此進行測試,但是無論如何都要繼續分配值,所以您會得到通知。

if(isset($data['variable'])) {
  $variable = $data['variable'];
} else { 
  $variable = numberFormat($data['variable']); // Test for isset() fails, code comes here.
} 

您需要在else子句中為$ variable分配有意義的else因為未設置$data['variable']

嘗試

$variable = (isset($data['variable'])) ? $data['variable'] : 0;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM