Heim  >  Artikel  >  Backend-Entwicklung  >  Wie greife ich in Twig auf dynamische Variablennamen zu?

Wie greife ich in Twig auf dynamische Variablennamen zu?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-06 05:44:03955Durchsuche

How to Access Dynamic Variable Names in Twig?

Zugriff auf dynamische Variablennamen in Twig

Bei der Arbeit mit Arrays von Objekten in Twig ist es oft notwendig, auf Variablen mit dynamischen Namen zuzugreifen. Dies kann durch eine Kombination aus Vorlagensyntax und PHP-Funktionen erreicht werden.

Verwendung der Attributfunktion

Um auf eine Variable namens placeholder{n} zuzugreifen, wobei n eine Variable ist, können Sie die verwenden Attributfunktion:

{{ attribute(invoices, 'placeholder1') }}

Dies gibt den Wert der Variablen „Platzhalter1“ im aktuellen Rechnungsobjekt zurück.

Verwendung des Kontextarrays

Alternativ können Sie direkt auf Werte zugreifen des Kontextarrays unter Verwendung der Klammernotation:

{{ _context['placeholder' ~ id] }}

Dieser Ansatz wird im Allgemeinen bevorzugt, da er prägnanter und klarer ist. Es ist jedoch erforderlich, die Umgebungsoption strict_variables auf true zu setzen, um Laufzeitfehler beim Zugriff auf nicht vorhandene Variablen zu vermeiden.

Standardwerte bereitstellen

Wenn die Option strict_variables auf true gesetzt ist, sollten Sie die verwenden Standardfilter zur Bereitstellung eines Standardwerts für nicht vorhandene Variablen:

{{ _context['placeholder' ~ id]|default('Default value') }}

Überprüfung auf Variablenexistenz

Um zu überprüfen, ob eine Variable vor der Verwendung vorhanden ist, können Sie den definierten Test verwenden:

{% if _context['placeholder' ~ id] is defined %} ... {% endif %}

Dieser Ansatz ist ausführlicher als die Verwendung des Standardfilters, bietet aber eine explizitere Kontrolle über die Ausnahmebehandlung.

Das obige ist der detaillierte Inhalt vonWie greife ich in Twig auf dynamische Variablennamen zu?. 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