What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
{eval}
évalue une variable comme si cette dernière
était un template.
Peut être utile pour embarquer des balises de templates ou des variables
de template dans des variables ou des balises/variables dans des
variables de fichiers de configuration.
Si vous définissez l'attribut assign
, la sortie sera assignée à la
variable de template désignée plutôt que d'être affichée dans le
template.
Nom attribut | Type | Requis | Defaut | Description |
---|---|---|---|---|
var | mixed | Oui | n/a | Variable (ou chaîne de caractères) à évaluer |
assign | chaîne de caractères | Non | n/a | Le nom de la variable PHP dans laquelle la sortie sera assignée |
Les variables évaluées sont traitées de la même façon que les templates. Elles suivent les mêmes règles de traitement et de sécurité, comme si elles étaient réellement des templates.
Les variables évaluées sont compilées à chaque invocation, et la version compilée n'est pas sauvegardée ! Toutefois, si le cache est activé, la sortie sera placée en cache avec le reste du template.
Example 8.6. {eval}
Le contenu du fichier de configuration, setup.conf
.
#setup.conf #---------- emphstart = <strong> emphend = </strong> titre = Bienvenue sur la homepage de {$company} ! ErrorVille = Vous devez spécifier un nom de {#emphstart#}ville{#emphend#}. ErrorDept = Vous devez spécifier un {#emphstart#}département{#emphend#}.
Où le template est :
{config_load file='setup.conf'} {eval var=$foo} {eval var=#titre#} {eval var=#ErrorVille#} {eval var=#ErrorDept# assign='state_error'} {$state_error}
L'exemple ci-dessus affichera :
Ceci est le contenu de foo. Bienvenue sur la homepage de FictifLand. Vous devez spécifier un nom de <strong>ville</strong>. Vous devez spécifier un <strong>département</strong>.
Example 8.7. un autre exemple avec {eval}
Ceci va afficher le nom du serveur (en majuscule) et son IP.
La variable $str
également venir d'une requête de base de données.
<?php $str = 'Le nom du serveur est {$smarty.server.SERVER_NAME|upper} ' .'at {$smarty.server.SERVER_ADDR}'; $smarty->assign('foo',$str); ?>
Où le template est :
{eval var=$foo}