foreach,foreachelse
Nome Attributo
Tipo
Obbligatorio
Default
Descrizione
from
array
sì
nessuno
Array sul quale viene eseguito il ciclo
item
stringa
sì
nessuno
Nome della variabile che rappresenta
l'elemento attuale
key
stringa
no
nessuno
Nome della variabile che rappresenta la chiave attuale
name
stringa
no
nessuno
Nome del ciclo foreach per l'accesso alle sue proprietà
I cicli foreach sono un'alternativa ai cicli
section. foreach si usa
per ciclare su un singolo array associativo. La sintassi di
foreach è molto più semplice di
session, ma in compenso può essere usata solo
per un array singolo. I tag foreach devono
essere chiusi con /foreach. I parametri
obbligatori sono from e item.
Il nome del ciclo foreach può essere quello che preferite, composto
di lettere, numeri e underscore. I cicli foreach
possono essere nidificati, ma i nomi dei cicli nidificati devono
essere diversi tra di loro. La variabile from
(di solito un array di valori) determina quante volte verrà eseguito
il ciclo foreach.
foreachelse viene eseguito quando non ci sono
valori nella variabile from.
foreach
{* questo esempio stamperà tutti i valori dell'array $custid *}
{foreach from=$custid item=curr_id}
id: {$curr_id}<br>
{/foreach}
OUTPUT:
id: 1000<br>
id: 1001<br>
id: 1002<br>
foreach con key
{* key contiene la chiave per ogni valore del ciclo
l'assegnazione può essere qualcosa del genere:
$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));
*}
{foreach name=outer item=contact from=$contacts}
{foreach key=key item=item from=$contact}
{$key}: {$item}<br>
{/foreach}
{/foreach}
OUTPUT:
phone: 1<br>
fax: 2<br>
cell: 3<br>
phone: 555-4444<br>
fax: 555-3333<br>
cell: 760-1234<br>
I cicli foreach hanno anche le proprie variabili che gestiscono le proprietà
del foreach. Queste vengono indicate così: {$smarty.foreach.foreachname.varname},
dove foreachname è il nome indicato come attributo name
del foreach
iteration
iteration si usa per mostrare l'iterazione corrente del ciclo.
iteration comincia sempre per 1 ed è incrementata di uno
ad ogni iterazione.
first
first vale true quando l'iterazione attuale è la prima del ciclo.
last
last vale true quando l'iterazione attuale è l'ultima del ciclo.
show
show si usa come parametro per il foreach.
show è un valore booleano, true o false. Quando
è false, il foreach non verrà visualizzato. Se è presente un
foreachelse, verrà visualizzato al suo posto.
total
total si usa per visualizzare il numero di iterazioni che il
ciclo foreach effettuerà. Può essere usato all'interno o dopo il foreach.