3

Smarty で PHP から動的に割り当てたいくつかの変数にアクセスしたいのですが、例を次に示します。

$content_name = 'body'
$smarty->assign('content_name',$content_name);
$smarty->assign($content_name.'_title',$title);
$smarty->assign($content_name.'_body',$body);

// assigned values
// $content_name = home
// $home_title = $title
// $home_body = $body

これらに動的にアクセスしたい理由は、上記のコードを含む関数の複数のバージョンを呼び出すためです。それらはすべて同じテンプレートを使用するため、値が競合するため、単に $title、$body などを使用したくないためです。お互い。

設定した content_name に基づいて title 変数と body 変数にアクセスしたいことがわかっている場合、smarty 内でこれをどのように達成できますか?

4

2 に答える 2

2

動的変数の代わりに配列を使用することに関する私のコメントによると、vars を配列に追加する方法の例を次に示します。

php:

$vars = array();

function whatever() {
    global $vars;


    $vars[] = array(
        'firstname' => 'Mike',
        'surname' => 'Smith'
    );
}

$smarty->assign('vars', $vars);

賢い:

{section name=loop loop=$vars}
    Name: {$vars[loop].firstname} {$vars[loop].surname}
{/section}
于 2010-01-24T18:24:59.303 に答える