Jusqu’ici, les variables étaient définies dans le code C# derrière puis utilisées dans les modèles. Il est aussi possible de déclarer des variables directement dans le modèle avec la directive set.
1. Définir des variables avec #set()
Deux manières de déclarer des variables :
Méthode 1 : définir les variables au préalable dans le code backend C#/Java et les lire dans le modèle ;
Méthode 2 : définir directement dans le modèle à l’aide de#set()(point clé de cette leçon)
#set($name = "hello foxdevelop.com")
#set($okay = "common baby")
#set($nameokay = "$name|$okay")Langage du code : PHP (php)
#set(variable = valeur)prend en charge chaînes, nombres, tableaux, propriétés d’objets et affectations depuis d’autres variables- Typage faible, pas besoin de déclarer le type des variables
2. Deux syntaxes et règles d’affichage des variables
2.1 Formes de base
$name: si la variable n’existe pas, affiche littéralement$name$!name: rendu silencieux ; affiche du vide si la variable est absente (recommandé pour éviter des textes parasites$xxxsur la page)- Syntaxe standard recommandée :
${name}(les accolades délimitent explicitement la variable)
2.2 Exemple de problème de délimitation
#set($name = "hello")
$namehello × le moteur interprète cela comme variable $namehello introuvable
${name}hello √ correct : résout $name puis concatène le texte helloLangage du code : PHP (php)
3. Commentaires sur une ligne ##
## Ceci est un commentaire, il n’apparaîtra pas dans le rendu final
#set($name = "test") ## les commentaires en fin de ligne sont autorisésLangage du code : PHP (php)
- Le contenu des commentaires n’est pas envoyé dans la page générée ;
- Les commentaires ne sont pas visibles dans la source de la page dans le navigateur (supprimés au traitement du moteur de modèle).
4. Types d’affectation pris en charge par #set
## Affectation de chaîne
#set($name = "hello world")
## Copier une variable dans une autre
#set($obj= $name)
## Affecter des propriétés d’objet
#set($obj.Friend = "monica")
#set($obj.Blame = $whitehouse.Leak)
## Appeler une méthode et affecter son résultat
#set($obj.Plan = $spindoctor.weave($web))
## Affectation numérique
#set($obj.Number = 123)
## Affectation de tableau
#set($obj.Say = ["Not", $my, "fault"])Langage du code : PHP (php)
5. Règles spéciales quand une variable n’existe pas
$sadfsdfsdLangage du code : PHP (php)
Lorsque le moteur de modèle ne trouve pas la variable :
- Syntaxe simple
$sadfsdfsd: affiche le texte littéral$sadfsdfsd - Avec
$!sadfsdfsd: renvoie une chaîne vide si la variable est absente
Définir des variables dans le modèle
Previous: Syntaxe de base des modèles