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