Switch — case & default
Pilih cabang konten berdasarkan satu variabel template: {switch nama_var} … {case nilai} … {default} … {endswitch}. Diimplementasikan di process_switch_statements_stable() dan process_switch_content_stable().
NexaDom.php · process_switch_statements_stable
Sintaks
{switch status_order}
{case 'pending'}
<p>Menunggu</p>
{case 'done'}
<p>Selesai</p>
{default}
<p>Lainnya</p>
{endswitch}{switch}memakai satu nama variabel (boleh notasi titik, mis.user.tier) — nilai diambil lewatget_variable_value().- Tiap
{case …}berisi literal yang bisa dikutip tunggal atau ganda; kutip dibuang saat perbandingan. {default}opsional: dipakai jika tidak adacaseyang cocok.- Penutup wajib:
{endswitch}.
Perilaku pencocokan
| Aspek | Perilaku |
|---|---|
| Perbandingan | (string) $switch_value === (string) $case_value — samakan sebagai string. |
| Urutan | case dicek dari atas ke bawah; cabang pertama yang cocok yang dipakai (seperti switch di PHP). |
| Tanpa kecocokan | Jika ada {default}, isi antara default dan endswitch yang dikembalikan; jika tidak, hasil kosong. |
Urutan di pipeline render
Bersama if stable, switch dijalankan dalam process_global_conditionals_stable_skip_blocks() — setelah placeholder blok NEXA dipasang, urutannya: process_if_statements_stable() lalu process_switch_statements_stable(). Setiap kemunculan blok {switch …}…{endswitch} diganti hasilnya (bisa lebih dari satu switch per halaman).
{switch tab_index}
{case 1} …
{case 2} …
{endswitch}Nilai variabel numerik akan disamakan sebagai string dengan teks di case (setelah trim kutip).
Lanjut
Sebelumnya: If / elseif / else. Indeks Helper · Dokumentasi · Beranda.