Heim >Backend-Entwicklung >PHP-Tutorial >Wie greife ich dynamisch auf Twig-Variablennamen zu?

Wie greife ich dynamisch auf Twig-Variablennamen zu?

Susan Sarandon
Susan SarandonOriginal
2024-11-06 12:42:02535Durchsuche

How to Dynamically Access Twig Variable Names?

Dynamischer Zugriff auf Twig-Variablennamen

Der Zugriff auf Variablen mit dynamischen Namen in Twig kann eine Herausforderung sein. Stellen Sie sich das folgende Szenario vor:

<p>placeholder1
placeholder2
placeholderx
</p>

<pre class="brush:php;toolbar:false">{% for invoices as invoice %}
    need to display here the placeholder followed by the invoice id number
    {{ placeholedr1 }}

Zugriff auf Variablen mit Kontext-Array

Anstatt die Attributfunktion zu verwenden, können Sie mithilfe der Klammernotation auf Variablenwerte im _context-Array zugreifen :

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

Diese Option ist prägnanter und wohl klarer.

Strikte Variablenprüfungen

Wenn strict_variables in den Umgebungsoptionen auf true gesetzt ist , kann es zu Fehlern bei nicht vorhandenen Variablen kommen. Um dies zu handhaben, verwenden Sie den Standardfilter:

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

{{ attribute(_context, 'placeholder' ~ id)|default }}

Variablenexistenz prüfen

Um zu überprüfen, ob eine Variable existiert, bevor Sie darauf zugreifen, verwenden Sie den definierten Test:

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

Standardwerte mit dem Standardfilter

Geben Sie einen Standardwert an, falls die Variable nicht vorhanden ist, indem Sie |default:

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

{{ attribute(_context, 'placeholder' ~ id)|default('Default value') }}
verwenden

Das obige ist der detaillierte Inhalt vonWie greife ich dynamisch auf Twig-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