smarty内蔵関数foreachの使用例

1627 ワード

この例では、smarty内蔵関数foreachの使い方について説明します.皆さんの参考にしてください.具体的には以下の通りです.
出力ファイル:index.php

    require_once('libs/Smarty.class.php'); 
  
$smarty = new Smarty();
$smarty->setTemplateDir($_SERVER['DOCUMENT_ROOT']."/php/templates/");
$smarty->setCompileDir($_SERVER['DOCUMENT_ROOT']."/php/templates_c/");
$smarty->setCacheDir($_SERVER['DOCUMENT_ROOT']."/php/cache/");
$smarty->caching = false;

$name = array(" "," "," "," ");
$family = array("husband"=>" ","wife"=>" ","boy"=>" ","girl"=>" ");
$smarty->assign("name",$name);
$smarty->assign("family",$family);

$smarty->display("temp.htm");
?>


テンプレートファイル:temp.htm

   {foreach $name as $value} 
  
{$value}
{/foreach}


{foreach $family as $family_name}
{$family_name@key} = {$family_name}
{/foreach}


{foreach from=$family item=f_name key=k}
{$k} = {$f_name}
{/foreach}


配列の出力方法には、大きく2つの形式があります.
(1)smarty 2の{foreach from=配列変数名item=配列値}.(2)smarty 3の出力方法はphpと一致しており、上記のインスタンスに$keyが付いていないため、キー名を出力する必要がある場合は、インスタンス内の形式@keyを採用します.$key=>$valueという形式を使用することができます.
また、配列のいずれかの値のみをとると、関連配列の{$family.husband}、インデックス配列の{$name[0]}など、直接出力できます.
本稿で述べたphpプログラム設計に役立つことを願っています.