Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Mendapat \"Ralat Terperangkap: Akses Offset Tatasusunan pada Nilai Boolean\" dalam PHP 7.4?

Mengapa Saya Mendapat \"Ralat Terperangkap: Akses Offset Tatasusunan pada Nilai Boolean\" dalam PHP 7.4?

Patricia Arquette
Patricia Arquetteasal
2024-11-15 04:18:02505semak imbas

Why Am I Getting

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 semakan 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn