Heim >Backend-Entwicklung >PHP-Tutorial >Wie greife ich in PHP auf Objekteigenschaften mit ungültigen oder ganzzahligen Namen zu?
JSON-Dekodierung in PHP führt oft zu Objekten mit Eigenschaften, die ungültige Namen haben. Diese Inkonsistenz erschwert den Zugriff auf diese Eigenschaften mithilfe der Standardobjektsyntax.
Auf Eigenschaften mit gültigen Variablennamen kann mithilfe der Punktnotation zugegriffen werden :
$data = '{ "name": "John Doe" }'; $obj = json_decode($data); echo $obj->name; // Output: John Doe
Der Zugriff auf Eigenschaften mit Ganzzahlen oder anderen ungültigen Namen ist nicht so einfach. PHP hat ein paar Macken, die Fehler verursachen können:
$data = '{ "42": "The Answer" }'; $obj = json_decode($data); echo $obj->{'42'}; // Output: The Answer
$data = '{ "123": "Three Digits" }'; $obj = json_decode($data); echo $obj->{'123'}; // Error: syntax error
$obj = new stdClass; $obj->{'123'} = 'Three Digits'; echo $obj->{'123'}; // Output: Three Digits
Berücksichtigen Sie diese, um auf Eigenschaften mit ungültigen Namen zuzugreifen Optionen:
$obj = json_decode($data); $arr = (array) $obj->highlighting; $value = $arr['448364']['Data']['0'];
function recursive_cast_to_array($obj) { $arr = (array) $obj; foreach ($arr as &$value) { if (is_object($value)) { $value = recursive_cast_to_array($value); } } return $arr; } $arr = recursive_cast_to_array($obj); $value = $arr['highlighting']['448364']['Data']['0'];
$arr = json_decode(json_encode($obj), true); $value = $arr['highlighting']['448364']['Data']['0'];
Beachten Sie, dass JSON-Funktionen UTF-8-Kodierung für alle Zeichenfolgen erfordern.
Das obige ist der detaillierte Inhalt vonWie greife ich in PHP auf Objekteigenschaften mit ungültigen oder ganzzahligen Namen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!