第 4章変数
Smartyは色々な種類の変数を持っています。変数の種類は接頭辞の記号によって決まります。
(記号によって囲まれる場合もあります)
変数は、その値を直接表示したり、関数の属性のパラメータや変数の修正子、内部の条件式等に使用されます。
変数の値を表示するには単にデリミタで囲みます。
{$Name}
{$Contacts[row].Phone}
<body bgcolor="{#bgcolor#}"> |
phpから割り当てられた変数
phpから割り当てられた変数は、先頭にドル記号($)をつける事で参照できます。
また、assign 関数によってテンプレート内から割り当てられた変数もこの方法で表示できます。
例 4-1. 割り当てられた変数 Hello {$firstname}, glad to see you could make it.
<br />
Your last login was on {$lastLoginDate}. |
出力:
Hello Doug, glad to see you could make it.
<br />
Your last login was on January 11th, 2001. |
|
連想配列
ピリオドの後にキーを指定する事で、phpから割り当てられた連想配列を参照できます。
例 4-2. 連想配列の値にアクセスする
<?php $smarty = new Smarty; $smarty->assign('Contacts', array('fax' => '555-222-9876', 'email' => 'zaphod@slartibartfast.com', 'phone' => array('home' => '555-444-3333', 'cell' => '555-111-1234'))); $smarty->display('index.tpl'); ?>
|
index.tpl:
{$Contacts.fax}<br />
{$Contacts.email}<br />
{* you can print arrays of arrays as well *}
{$Contacts.phone.home}<br />
{$Contacts.phone.cell}<br /> |
出力:
555-222-9876<br />
zaphod@slartibartfast.com<br />
555-444-3333<br />
555-111-1234<br /> |
|
配列のインデックス
本来のphp構文のように、配列のインデックスによる参照も可能です。
例 4-3. インデックスによって配列にアクセスする
<?php
$smarty = new Smarty; $smarty->assign('Contacts', array('555-222-9876', 'zaphod@slartibartfast.com', array('555-444-3333', '555-111-1234'))); $smarty->display('index.tpl');
?>
|
index.tpl :
{$Contacts[0]}<br />
{$Contacts[1]}<br />
{* you can print arrays of arrays as well *}
{$Contacts[2][0]}<br />
{$Contacts[2][1]}<br /> |
出力 :
555-222-9876<br />
zaphod@slartibartfast.com<br />
555-444-3333<br />
555-111-1234<br /> |
|
オブジェクト
phpから割り当てられたオブジェクトのプロパティは、'->'の後にプロパティ名を指定する事で参照できます。
例 4-4. オブジェクトのプロパティにアクセスする name: {$person->name}<br />
email: {$person->email}<br /> |
出力:
name: Zaphod Beeblebrox<br />
email: zaphod@slartibartfast.com<br /> |
|