首頁 >後端開發 >php教程 >為什麼 PHP 7.4 會拋出「嘗試存取 Bool 類型值的陣列偏移量」?

為什麼 PHP 7.4 會拋出「嘗試存取 Bool 類型值的陣列偏移量」?

Barbara Streisand
Barbara Streisand原創
2024-11-27 01:46:10731瀏覽

Why Does PHP 7.4 Throw

理解錯誤:布林值上的陣列偏移存取

PHP 7.4 引入了嚴格類型檢查的更改,導致錯誤「嘗試存取bool類型值的陣列偏移量。

PHP 7.4 修正

在提供的範例中,拋出錯誤是因為當查詢結果為空時$Row['Data']傳回布林值。若要解決此問題,您可以使用 null 合併運算子 (??) 來檢查 $Row['Data'] 是否為 null,如果是,則為其指派一個預設值。這確保您始終可以存取數組元素而不會遇到錯誤。

這是使用null 合併運算子的程式碼的更新版本:

public static function read($id)
{
    $Row = MySQL::query("SELECT `Data` FROM `cb_sessions` WHERE `SessionID` = '$id'", TRUE);

    $session_data = $Row['Data'] ?? '';

    return $session_data;
}

或者,您可以使用null合併運算子直接為$Row['Data'] 指派預設值:

$Row['Data'] ??= 'default value';

這將設定如果$Row['Data'] 為null,則將其設為'預設值',然後照常傳回其值。這兩種方法都透過確保 $Row['Data'] 始終計算為有效的陣列偏移值來有效防止錯誤。

以上是為什麼 PHP 7.4 會拋出「嘗試存取 Bool 類型值的陣列偏移量」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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