Sortie variable du modèle ThinkPHP, fonctions personnalisées et utilisation des déclarations de jugement

不言
Libérer: 2023-03-30 09:06:01
original
1836 Les gens l'ont consulté

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} //输出常量
Copier après la connexion

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
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

doit être remplacé par :

Copier le code Le code est le suivant :

<if condition="$id lt 5 "> value1
<else /> value2
</if>
Copier après la connexion

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[&#39;name&#39;]) neq &#39;THINKPHP&#39; "> ThinkPHP
<else /> other Framework
</if>
Copier après la connexion

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 &#39;ThinkPHP&#39; "> ThinkPHP
<else /> other Framework
</if>
Copier après la connexion

Ou savoir que la variable utilisateur est un objet

Copiez le codeLe code est le suivant :

<if condition="$user:name neq &#39;ThinkPHP&#39; "> ThinkPHP
<else /> other Framework
</if>
Copier après la connexion

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,### }
Copier après la connexion

L'exemple est le suivant :

Copier le codeLe code est le suivant :

function Cate($cid){ 
$Cate=D(&#39;Cate&#39;); 
$Cate=$Cate->where(&#39;id=&#39;.$cid)->find(); 
return $Cate[&#39;title&#39;]; 
}
Copier après la connexion

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=###}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!