搜尋

首頁  >  問答  >  主體

嘗試存取 PHP 7.4 中 bool 類型值的陣列偏移量

<p>我剛剛將伺服器的 PHP 版本升級到 PHP 7.4.1,現在收到此錯誤:</p> <blockquote> <p>注意:嘗試存取 bool 類型值的陣列偏移</p> </blockquote> <pre class="brush:php;toolbar:false;">public static function read($id) { $Row = MySQL::query("SELECT `Data` FROM `cb_sessions` WHERE `SessionID` = '$id'", TRUE); # http://php.net/manual/en/function.session-start.php#120589 //check to see if $session_data is null before returning (CRITICAL) if(is_null($Row['Data'])) { $session_data = ''; } else { $session_data = $Row['Data']; } return $session_data; }</pre> <p>PHP 7.4 的修復是什麼? </p>
P粉846294303P粉846294303447 天前523

全部回覆(2)我來回復

  • P粉864594965

    P粉8645949652023-08-25 00:21:20

    如果你的查詢沒有回傳一行,那麼你的變數 $Row 將會被填入 false, 因此您可以在嘗試存取變數內部的任何索引之前測試該變數是否有值:

    if($Row){
      if(is_null($Row['Data']))
      {
          $session_data = '';
      }...

    回覆
    0
  • P粉770375450

    P粉7703754502023-08-25 00:04:34

    輕鬆使用 PHP ?? 空合併運算子

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

    或者你可以這樣使用

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

    回覆
    0
  • 取消回覆