|
|

|
Kapitel 4. Variablen
Smarty hat verschiedene Variablentypen, welche weiter unten
detailliert beschrieben werden. Der Typ der Variable wird durch
das Vorzeichen bestimmt.
Variablen können in Smarty direkt ausgegeben werden oder als
Argumente
für Funktionsparameter und
Modifikatoren sowie in
Bedingungen verwendet werden. Um eine Variable auszugeben,
umschliessen Sie sie mit Trennzeichen, so dass die
Variable das einzige enthaltene Element ist. Beispiele:
{$Name}
{$Kontakte[zeile].Telefon}
<body bgcolor="{#bgcolor#}"> |
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.
Beispiel 4-1. zugewiesene Variablen PHP-Skript
<?php
$smarty = new Smarty;
$smarty->assign('vorname', 'Andreas'); $smarty->assign('nachname', 'Halter'); $smarty->assign('treffpunkt', 'New York');
$smarty->display('index.tpl');
?>
|
Mit folgendem index.tpl:
Hallo {$vorname} {$nachname}, schön, dass Du es einrichten kannst.
<br />
{*
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:
Hallo Andreas Halter, schön, dass Du es einrichten kannst.
<br />
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.
Beispiel 4-2. Zugriff auf Variablen eines assoziativen Arrays
<?php $smarty->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.fax}<br />
{$kontakte.email}<br />
{* auch multidimensionale Arrays können so angesprochen werden *}
{$kontakte.telefon.privat}<br />
{$kontakte.telefon.mobil}<br /> |
Ausgabe:
555-222-9876<br />
zaphod@slartibartfast.example.com<br />
555-444-3333<br />
555-111-1234<br /> |
|
Array Index
Arrays können - ähnlich der PHP-Syntax - auch über ihren Index
angesprochen werden.
Beispiel 4-3. Zugriff über den Array Index
<?php $smarty->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[0]}<br />
{$kontakte[1]}<br />
{* auch hier sind multidimensionale Arrays möglich *}
{$kontakte[0][0]}<br />
{$kontakte[0][1]}<br /> |
Ausgabe:
555-222-9876<br />
zaphod@slartibartfast.example.com<br />
555-444-3333<br />
555-111-1234<br /> |
|
Objekte
Attribute von aus PHP zugewiesenen Objekten können über
das '->'-Symbol erreicht werden.
Beispiel 4-4. Zugriff auf Objekt-Attribute name: {$person->name}<br />
email: {$person->email}<br /> |
Ausgabe:
name: Zaphod Beeblebrox<br />
email: zaphod@slartibartfast.example.com<br /> |
|
|
|
|