このマニュアルはSmartyのものです。セキュリティなどの問題でRCMSでは利用できないものもありますので、ご注意ください。
変数 第 4章変数
Smarty は色々な種類の変数を持っています。変数の種類は接頭辞の記号によって決まります
(記号によって囲まれる場合もあります)。
Smarty 変数は、その値を直接表示したり
関数 の引数や
属性 、
修飾子 、
そして条件式の内部などで使用されたりします。
変数の値を表示するには、それを単純に
デリミタ
で囲み、デリミタ内に変数のみが含まれるようにします。
例 4-1. 変数の例
{$Name}
{$product.part_no} <b>{$product.description}</b>
{$Contacts[row].Phone}
<body bgcolor="{#bgcolor#}">
ヒント: Smarty 変数の値を手っ取り早く調べるには、
デバッギングコンソール を使用するとよいでしょう。
PHP から割り当てられた変数
PHP から 割り当てられた 変数は、
(php と同様に) 先頭にドル記号 ($ ) をつける事で参照できます。
テンプレート内で
{assign}
関数を用いて割り当てられた変数もこの方法で表示されます。
例 4-2. 割り当てられた変数
php script
<?php $smarty = new Smarty (); $smarty -> assign ( 'firstname' , 'Doug' ); $smarty -> assign ( 'lastname' , 'Evans' ); $smarty -> assign ( 'meetingPlace' , 'New York' ); $smarty -> display ( 'index.tpl' ); ?>
一方、index.tpl の内容はこのようになります。
Hello {$firstname} {$lastname}, glad to see you can make it.
<br />
{* これは動作しません。変数名は大文字小文字を区別するからです。 *}
This weeks meeting is in {$meetingplace}.
{* こちらは動作します *}
This weeks meeting is in {$meetingPlace}.
出力は次のようになります。
Hello Doug Evans, glad to see you can make it.
<br />
This weeks meeting is in .
This weeks meeting is in New York.
連想配列
PHP から割り当てられた連想配列を参照することもできます。
この場合は、'.' (ピリオド) 記号の後にキーを指定します。
例 4-3. 連想配列の値にアクセスする
<?php $smarty -> assign ( 'Contacts' , array( 'fax' => '555-222-9876' , 'email' => 'zaphod@slartibartfast.example.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.example.com<br />
555-444-3333<br />
555-111-1234<br />
配列のインデックス
配列に対してインデックスでアクセスすることもできます。
これは PHP 本来の構文と同じです。
例 4-4. インデックスによって配列にアクセスする
<?php $smarty -> assign ( 'Contacts' , array( '555-222-9876' , 'zaphod@slartibartfast.example.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.example.com<br />
555-444-3333<br />
555-111-1234<br />
オブジェクト
PHP から割り当てられた オブジェクト
のプロパティにアクセスするには、->
記号の後にプロパティ名を指定します。
例 4-5. オブジェクトのプロパティにアクセスする
name: {$person->name}<br />
email: {$person->email}<br />
出力は次のようになります。
name: Zaphod Beeblebrox<br />
email: zaphod@slartibartfast.example.com<br />