Heim  >  Artikel  >  Backend-Entwicklung  >  Warum löst PHP 7.4 den Fehler „Versuch, auf den Array-Offset für den Wert vom Typ Bool zuzugreifen' aus?

Warum löst PHP 7.4 den Fehler „Versuch, auf den Array-Offset für den Wert vom Typ Bool zuzugreifen' aus?

Barbara Streisand
Barbara StreisandOriginal
2024-11-27 01:46:10701Durchsuche

Why Does PHP 7.4 Throw

Den Fehler verstehen: Array-Offset-Zugriff auf Boolean

PHP 7.4 führte eine Änderung bei der strikten Typprüfung ein, die zum Fehler „Versucht wurde Greifen Sie auf den Array-Offset auf einen Wert vom Typ Bool zu. Dieser Fehler tritt auf, wenn versucht wird, mithilfe der Array-Syntax (eckige Klammern) auf ein Element eines Arrays für einen Wert vom Typ Boolean zuzugreifen.

Der PHP 7.4 Fix

Im bereitgestellten Beispiel wird der Fehler ausgelöst, weil $Row['Data'] einen booleschen Wert zurückgibt, wenn das Abfrageergebnis leer ist. Um dies zu beheben, können Sie den Null-Koaleszenzoperator (??) verwenden, um zu prüfen, ob $Row['Data'] null ist, und ihm gegebenenfalls einen Standardwert zuzuweisen. Dadurch wird sichergestellt, dass Sie immer auf das Array-Element zugreifen können, ohne dass der Fehler auftritt.

Hier ist eine aktualisierte Version des Codes, der den Null-Koaleszenzoperator verwendet:

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

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

    return $session_data;
}

Alternativ können Sie den Null-Operator verwenden Koaleszenzoperator, um $Row['Data'] direkt einen Standardwert zuzuweisen:

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

Dies wird festgelegt $Row['Data'] auf 'Standardwert' setzen, wenn es null ist, und dann seinen Wert wie gewohnt zurückgeben. Beide Methoden verhindern den Fehler effektiv, indem sie sicherstellen, dass $Row['Data'] immer als gültiger Array-Offsetwert ausgewertet wird.

Das obige ist der detaillierte Inhalt vonWarum löst PHP 7.4 den Fehler „Versuch, auf den Array-Offset für den Wert vom Typ Bool zuzugreifen' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn