Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengakses Nama Pembolehubah Ranting Secara Dinamik?

Bagaimana untuk Mengakses Nama Pembolehubah Ranting Secara Dinamik?

Susan Sarandon
Susan Sarandonasal
2024-11-06 12:42:02336semak imbas

How to Dynamically Access Twig Variable Names?

Mengakses Nama Pembolehubah Twig Secara Dinamik

Mengakses pembolehubah dengan nama dinamik dalam Twig boleh menjadi satu cabaran. Pertimbangkan senario berikut:

<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 }}

Mengakses Pembolehubah dengan Tatasusunan Konteks

Daripada menggunakan fungsi atribut, anda boleh mengakses nilai pembolehubah dalam tatasusunan _context menggunakan notasi kurungan :

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

Pilihan ini lebih ringkas dan boleh dikatakan lebih jelas.

Semakan Pembolehubah Tegas

Apabila strict_variables ditetapkan kepada benar dalam pilihan persekitaran , anda mungkin menghadapi ralat untuk pembolehubah yang tidak wujud. Untuk mengendalikan perkara ini, gunakan penapis lalai:

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

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

Menyemak Kewujudan Pembolehubah

Untuk menyemak sama ada pembolehubah wujud sebelum mengaksesnya, gunakan ujian yang ditentukan:

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

Nilai Lalai dengan Penapis lalai

Sediakan nilai lalai sekiranya pembolehubah tidak wujud menggunakan |lalai:

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

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

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Nama Pembolehubah Ranting Secara Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn