Aus einem PHP-Skript zugewiesene Variablen
Variablen die in einem PHP Skript assigned mit zugewiesen wurden, müssen
mit eine Dollar Zeichen $ versehen werden. Auf
die gleiche Art werden Variablen ausgegeben, die im Template mit {assign} zugewiesen
wurden.
zugewiesene VariablenPHP-Skript
assign('vorname', 'Andreas');
$smarty->assign('nachname', 'Halter');
$smarty->assign('treffpunkt', 'New York');
$smarty->display('index.tpl');
?>
]]>
Mit folgendem index.tpl:
{*
das hier funktioniert nicht, da bei Variablennamen auf
Gross-Kleinschreibung geachtet werden muss:
*}
Diese Woche findet das Treffen in {$treffPunkt} statt.
{* aber das hier funktioniert: *}
Diese Woche findet das Treffen in {$treffpunkt} statt.
]]>
Ausgabe:
Diese Woche findet das Treffen in statt.
Diese Woche findet das Treffen in New York statt.
]]>
Assoziative Arrays
Sie können auch auf die Werte eines in PHP zugewiesenen
assoziativen Arrays zugreifen, indem Sie den Schlüssel (Indexwert)
nach einem '.'-Zeichen (Punkt) notieren.
Zugriff auf Variablen eines assoziativen Arrays
assign('kontakte',
array('fax' => '555-222-9876',
'email' => 'zaphod@slartibartfast.example.com',
'telefon' => array('privat' => '555-444-3333',
'mobil' => '555-111-1234')
)
);
$smarty->display('index.tpl');
?>
]]>
Bei folgender index.tpl:
{$kontakte.email}
{* auch multidimensionale Arrays können so angesprochen werden *}
{$kontakte.telefon.privat}
{$kontakte.telefon.mobil}
]]>
Ausgabe:
zaphod@slartibartfast.example.com
555-444-3333
555-111-1234
]]>
Array Index
Arrays können - ähnlich der PHP-Syntax - auch über ihren Index
angesprochen werden.
Zugriff über den Array Index
assign('kontakte', array(
'555-222-9876',
'zaphod@slartibartfast.example.com',
array('555-444-3333',
'555-111-1234')
));
$smarty->display('index.tpl');
?>
]]>
Bei folgendem index.tpl:
{$kontakte[1]}
{* auch hier sind multidimensionale Arrays möglich *}
{$kontakte[0][0]}
{$kontakte[0][1]}
]]>
Ausgabe:
zaphod@slartibartfast.example.com
555-444-3333
555-111-1234
]]>
Objekte
Attribute von aus PHP zugewiesenen Objekten können über
das '->'-Symbol erreicht werden.
Zugriff auf Objekt-Attribute
name}
email: {$person->email}
]]>
Ausgabe:
email: zaphod@slartibartfast.example.com
]]>