Ralat Terperangkap: Akses Offset Tatasusunan pada Nilai Boolean dalam PHP 7.4
Pertanyaan:
Selepas menaik taraf kepada PHP 7.4.1, ralat berikut berlaku:
Notice: Trying to access array offset on value of type bool in
dalam blok kod ini:
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; }
Penyelesaian:
PHP 7.4 menguatkuasakan pemeriksaan jenis yang lebih ketat, menyebabkan ralat ini apabila $Row['Data'] mungkin batal. Untuk menyelesaikan masalah ini, gunakan operator penggabungan nol (??) untuk menetapkan nilai lalai jika $Row['Data'] adalah nol:
return $Row['Data'] ?? 'default value';
Sebagai alternatif, anda boleh menggunakan operator penugasan gabungan nol (? ?=) untuk menetapkan nilai lalai jika $Row['Data'] adalah batal:
$Row['Data'] ??= 'default value'; return $Row['Data'];
Atas ialah kandungan terperinci Mengapa Saya Mendapat \'Ralat Terperangkap: Akses Offset Tatasusunan pada Nilai Boolean\' dalam PHP 7.4?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!