foreach,foreachelse
Loops foreach são uma alternativa para loops
section. foreach é usado
para pegar cada elemento de uma matriz associativa simples.
A sintaxe para foreach é muito mais simples do que
section, mas tem a desvantagem de poder ser usada
apenas para uma única matriz. Tags foreach devem ter
seu par /foreach. Os parâmetros requeridos são
from e item. O nome do loop
foreach pode ser qualquer coisa que você queira, feito de letras, números
e sublinhados. Loops foreach
podem ser aninhados, e o nome dos loops aninhados devem ser diferentes
um dos outros. A variável from (normalmente uma
matriz de valores) determina o número de vezes do loop
foreach.
foreachelse é executado quando não houverem mais valores
na variável from.
Exemplo 7-4. foreach {* este exemplo irá mostrar todos os valores da matriz $custid *}
{foreach from=$custid item=curr_id}
id: {$curr_id}<br>
{/foreach} |
MOSTRA: id: 1000<br>
id: 1001<br>
id: 1002<br> |
|
Exemplo 7-5. foreach key {* A key contém a chave para cada valor do loop
A definição se parece com isso:
$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} |
MOSTRA: phone: 1<br>
fax: 2<br>
cell: 3<br>
phone: 555-4444<br>
fax: 555-3333<br>
cell: 760-1234<br> |
|
Loop foreach também tem as suas próprias variáveis para manipilar as propriedades
foreach. Estas são indicadas assim: {$smarty.foreach.foreachname.varname} com
foreachname sendo o nome especificado no atributo
name do foreach.
iteration
iteration é usado para mostrar a interação atual do loop.
Iteration sempre começa em 1 e
é incrementado um a um em cada interação.
first
first é definido como true se a interação atual
do foreach for a primeira.
last
last é definido como true se a interação atual
do foreach for a última.
show
show é usado como parâmetro para o foreach.
show é um valor booleano, true ou false. Se
false, o foreach não será mostrado. Se tiver um foreachelse
presente, este será alternativamente mostrado.
total
total é usado para mostrar o número de interações do
foreach. Isto pode ser usado dentro ou depois do foreach.