Während der PHP -Entwicklung werden Arrays häufig verwendete Datenstrukturen. Wenn Sie jedoch versuchen, auf Tasten zuzugreifen, die im Array nicht vorhanden sind, begegnen Sie häufig auf einen Fehler des "illegalen String -Offset" -Namens "" ", wodurch das Programm ungewöhnlich unterbrochen und die Operation beeinträchtigt wird.
Dieser Fehler tritt normalerweise in mehrdimensionalen Array -Operationen auf. Wenn PHP auf nicht existierende Array-Tasten zugreift, wandelt sie die Variable automatisch in eine Zeichenfolge um, wodurch der Fehler "Illegal String Offset" erhöht wird.
$arr = array('id'=>1, 'email'=>'[email protected]');
$name = $arr['name'];
ISSET () kann erkennen, ob der angegebene Schlüssel im Array vorhanden ist, und einen Booleschen Wert zurückgeben. Stellen Sie vor dem Aufrufen des Array -Elements zunächst fest, ob der Schlüssel vorhanden ist, um Fehler zu vermeiden.
$arr = array('id'=>1, 'email'=>'[email protected]');
if (isset($arr['name'])) {
$name = $arr['name'];
}
array_key_exists () ähnelt isset (), kann jedoch Tasten mit Nullwert korrekt erkennen. Es ist für Situationen geeignet, in denen festgestellt werden muss, ob der Schlüssel existiert, der Schlüsselwert kann jedoch leer sein.
$arr = array('id'=>1, 'email'=>'[email protected]');
if (array_key_exists('name', $arr)) {
$name = $arr['name'];
}
leer () bestimmt, ob die Variable leer ist. Sie können den ternären Operator verwenden, um den Code zu vereinfachen, um zu beurteilen, ob der Schlüsselwert existiert und nicht leer ist.
$arr = array('id'=>1, 'email'=>'[email protected]');
$name = isset($arr['name']) ? $arr['name'] : '';
if (!empty($name)) {
// Verwandte Operationen durchführen
}
Um den Fehler "illegaler String -Offset" zu vermeiden, besteht der Schlüssel darin, Urteile vor dem Zugriff auf die Array -Tasten zu fällen. Durch die rationale Verwendung von ISSET (), Array_key_exists () und leere () können die Robustheit und Stabilität des PHP -Code effektiv verbessert werden.