Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Trying to access array offset on value of type bool in PHP 7.4

Tags:

php

php-7.4

I just upgraded my server's PHP version to PHP 7.4.1 and now getting this error:

Notice: Trying to access array offset on value of type bool in

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;
}

What is the fix for PHP 7.4 ?

like image 721
anjanesh Avatar asked Jan 10 '20 02:01

anjanesh


2 Answers

Easy with PHP ?? null coalescing operator

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

Or you can use as such

$Row['Data'] ??= 'default value';
return $Row['Data'];
like image 81
dılo sürücü Avatar answered Nov 11 '22 04:11

dılo sürücü


If your query does not return a row, then your variable $Row will be filled with false, so you can test if the variable has a value before try to access any index inside it:

if($Row){
  if(is_null($Row['Data']))
  {
      $session_data = '';
  }...
like image 11
raul dev br Avatar answered Nov 11 '22 05:11

raul dev br