Zugriff auf Objekteigenschaft mit ungültigem Namen
In PHP ist es möglich, auf Objekte mit Eigenschaften zu stoßen, die unzulässige oder ungültige Zeichen enthalten, wie etwa Bindestriche (-). Während reguläre Eigenschaftszugriffsfunktionen fehlschlagen, gibt es Problemumgehungen, um diese Werte abzurufen.
Lösung 1: Klammernotation
Um auf eine Eigenschaft mit einem ungültigen Namen zuzugreifen, verwenden Sie die Klammernotation mit der Eigenschaftsname in geschweiften Klammern ({}):
$object->{'todo-items'};
Lösung 2: Variablenname und Verkettung
Alternativ können Sie den Eigenschaftsnamen einer Variablen zuweisen und ihn mit der $object-Variablen verketten:
$todolist = 'todo-items'; echo $object->$todolist;
Beispiel:
Unter Verwendung des bereitgestellten Beispielobjekt-Dumps:
$x = (object) [ 'completed-count' => '0', 'description' => 'Description String', 'id' => '12345', 'todo-items' => (object) [ 'todo-item' => (object) [ 'completed' => 'false', 'content' => 'content string here', 'created-on' => '2009-04-16T20:33:31Z', 'creator-id' => '23423', 'id' => '234', 'position' => '1', 'responsible-party-id' => '2844499', 'responsible-party-type' => 'Person', 'todo-list-id' => '234234', ], ], ]; echo $x->{'todo-items'}[0]->{'todo-item'}->content;
Zusätzlich Tipp:
Um ein Objekt in ein Array zu konvertieren, können Sie den in der Frage und Antwort bereitgestellten Codeausschnitt verwenden:
public function toArray() { $array = array(); foreach ($this->_data as $key => $value) { if ($value instanceof StdClass) { $array[$key] = $value->toArray(); } else { $array[$key] = $value; } } return $array; }
Das obige ist der detaillierte Inhalt vonWie kann ich in PHP auf Objekteigenschaften mit ungültigen Zeichen zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!