Cet article présente principalement la sortie variable, les fonctions personnalisées et l'utilisation des déclarations de jugement des modèles ThinkPHP. C'est une compétence très pratique dans le fonctionnement des modèles ThinkPHP. Les amis qui en ont besoin peuvent s'y référer
Cet article décrit le. exemples de sortie de variable du modèle ThinkPHP, de fonctions personnalisées et d'utilisation des déclarations de jugement. Il comprend principalement trois utilisations : sortie variable, fonction personnalisée et déclaration de jugement. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :
Sortie de la variable d'opération du modèle :
Variable de sortie rapide
Copier le code Le code est le suivant :
{:function(…)} //执行方法并输出返回值 {~function} //执行方法不输出 {@var} //输出Session变量 {#var} //输出Cookie变量 {&var} //输出配置参数 {%var} //输出语言变量 {.var} //输出GET变量 {^var} //输出POST变量 {*var} //输出常量
Sortie du modèle
Copier le codeLe code est le suivant :
//1 直接调用index操作模板 $this->display(); // 对应Myapp/Tpl/default/Index/index.html //2 调用Index模块的test1操作模板 $this->display('test1'); //对应Myapp/Tpl/default/Index/test1.html //2 调用Message模块的test2操作模板() $this->display('Message:test2'); //对应Myapp/Tpl/default/Message/test2.html //3 调用XP主题的Message模块的test2操作模板 $this->display('Xp@Message:test2'); //对应Myapp/Tpl/Xp/Message/test2.html //4 直接指定模板文件的全名 $this->display('../Message/test3.html'); //对应Myapp/Tpl/default/Message/test3.html
Utiliser des déclarations de jugement
Nous peut utiliser des balises if pour définir des conditions complexes Jugement, par exemple :
Copier le code Le code est le suivant :
<if condition="($name eq 1) OR ($name gt 100) "> value1 <elseif condition="$name eq 2" />value2 <else /> value3 </if>
L'attribut condition peut prendre en charge des expressions de jugement telles comme eq, qui sont identiques aux balises de comparaison ci-dessus, mais ne prennent pas en charge l'utilisation de symboles tels que ">" et "<". Parce que cela confondrait l'analyse du modèle, l'utilisation suivante est fausse :
<if condition="$id < 5 "> value1 <else /> value2 </if>
doit être remplacé par :
Copier le code Le code est le suivant :
<if condition="$id lt 5 "> value1 <else /> value2 </if>
De plus, nous pouvons utiliser php code dans l'attribut condition, par exemple :
Copier le code Le code est le suivant :
<if condition="strtoupper($user['name']) neq 'THINKPHP' "> ThinkPHP <else /> other Framework </if>
L'attribut condition peut prendre en charge la syntaxe de points et la syntaxe d'objet, par exemple exemple :
Déterminer automatiquement si la variable utilisateur est un tableau ou un objet
Copier le codeLe code est le suivant :
<if condition="$user.name neq 'ThinkPHP' "> ThinkPHP <else /> other Framework </if>
Ou savoir que la variable utilisateur est un objet
Copiez le codeLe code est le suivant :
<if condition="$user:name neq 'ThinkPHP' "> ThinkPHP <else /> other Framework </if>
Puisque l'attribut condition de la balise if utilise essentiellement la syntaxe PHP, il Il sera plus concis d'utiliser autant que possible des balises de jugement et des balises de commutation. En principe, si cela peut être résolu avec des balises de commutation et de comparaison, essayez de ne pas utiliser de balises if. Parce que les balises de commutation et de comparaison peuvent utiliser des modificateurs de variables et des variables système. Si la balise IF ne peut toujours pas répondre à certaines exigences particulières, vous pouvez utiliser du code PHP natif ou des balises PHP pour écrire du code directement.
eq est égal à (==)
neq n'est pas égal à (!=)
gt est supérieur à (>)
egt est supérieur ou égal à (> =)
lt est inférieur à (< )
elt est inférieur ou égal à (<=)
heq est égal à (===)
nheq n'est pas égal à (! ==)
condition condition
Remarque
valeur de l'attribut condition, les variables nécessitent le symbole $, qui est différent des autres étiquettes.
Comment utiliser les fonctions personnalisées
Format d'appel de fonction des variables de modèle : {$varname|function1|function2=arg1, arg2, ###}
Exemple d'utilisation :
Copier le codeLe code est le suivant :
{$webTitle|md5|strtoupper|substr=0,3} {$number|number_format=2} {$varname|function1|function2=arg1,arg2,### }
L'exemple est le suivant :
Copier le codeLe code est le suivant :
function Cate($cid){ $Cate=D('Cate'); $Cate=$Cate->where('id='.$cid)->find(); return $Cate['title']; }
Si je veux appeler cette fonction dans le modèle, je peux l'écrire comme ceci dans le modèle
Copiez le code Le code est le suivant :
{$vo.cid|cate=###}
Remarque : les fonctions personnalisées doivent être placées dans le répertoire d'application du projet/common/common.php. Voici la clé.
Remarque : il ne peut pas y avoir d'espace entre
{ et le symbole $, et il n'y aura aucun problème avec les espaces dans les paramètres suivants
### représente la position du paramètre de la variable du modèle ; lui-même ;
prend en charge plusieurs fonctions, prend en charge les espaces entre les fonctions ;
prend en charge la fonction de protection des fonctions, et la liste des fonctions interdites peut être configurée dans le fichier de configuration
prend en charge la fonction de mise en cache des variables, et les chaînes de variables répétées ne le seront pas ; être analysé plusieurs fois.
Recommandations associées :
Remplacement du modèle ThinkPHP et constantes système et exemples d'application
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!