Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich in PHP auf Objekteigenschaften mit ungültigen Zeichen zugreifen?

Wie kann ich in PHP auf Objekteigenschaften mit ungültigen Zeichen zugreifen?

DDD
DDDOriginal
2024-12-14 01:57:10526Durchsuche

How Can I Access Object Properties with Invalid Characters in PHP?

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!

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