ThinkPHP template variable output, custom functions and judgment statement usage

不言
Release: 2023-03-30 09:06:01
Original
1790 people have browsed it

This article mainly introduces the variable output, custom functions and judgment statement usage of ThinkPHP templates. It is a very practical skill in ThinkPHP template operations. Friends who need it can refer to it

This article explains the examples ThinkPHP template variable output, custom functions and judgment statement usage. It mainly includes three usages: variable output, custom function and judgment statement. Share it with everyone for your reference. The specific analysis is as follows:

Template operation variable output:

Quick output variable

Copy code The code is as follows:

{:function(…)} //执行方法并输出返回值
{~function} //执行方法不输出
{@var} //输出Session变量
{#var} //输出Cookie变量
{&var} //输出配置参数  
{%var} //输出语言变量
{.var} //输出GET变量
{^var} //输出POST变量
{*var} //输出常量
Copy after login

Template output

Copy code The code is as follows:

//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
Copy after login

Use judgment statements

We can use if tags to define complex conditional judgments, for example:

Copy code The code is as follows:

<if condition="($name eq 1) OR ($name gt 100) "> value1
<elseif condition="$name eq 2" />value2
<else /> value3
</if>
Copy after login

The condition attribute can support eq and other judgment expressions, the same as the comparison tag above, but does not support "> The usage of symbols such as ", "<" will confuse template parsing, so the following usage is wrong:

<if condition="$id < 5 "> value1
<else /> value2
</if>
Copy after login

must be changed to:

Copy code The code is as follows:

<if condition="$id lt 5 "> value1
<else /> value2
</if>
Copy after login

In addition, we can use php code in the condition attribute, for example:

Copy code The code is as follows:

<if condition="strtoupper($user[&#39;name&#39;]) neq &#39;THINKPHP&#39; "> ThinkPHP
<else /> other Framework
</if>
Copy after login

The condition attribute can support dot syntax and object syntax, for example:
Automatically determine whether the user variable is an array or an object

Copy code The code is as follows:

<if condition="$user.name neq &#39;ThinkPHP&#39; "> ThinkPHP
<else /> other Framework
</if>
Copy after login

Or know that the user variable is an object

Copy code The code is as follows:

<if condition="$user:name neq &#39;ThinkPHP&#39; "> ThinkPHP
<else /> other Framework
</if>
Copy after login

Since the condition attribute of the if tag basically uses PHP syntax, so It may be more concise to use judgment tags and switch tags. In principle, if it can be solved with switch and comparison tags, try not to use if tags. Because switch and comparison tags can use variable modifiers and system variables. If the IF tag still cannot meet certain special requirements, you can use native PHP code or PHP tags to write code directly.

eq is equal to (==)
neq is not equal to (!=)
gt is greater than (>)
egt is greater than or equal to (>=)
lt is less than (< )
elt is less than or equal to (<=)
heq is equal to (===)
nheq is not equal to (!==)
condition condition
Note
condition attribute value , variables require the $ sign, which is different from other labels.

How to use custom functions

Function calling format of template variables: {$varname|function1|function2=arg1, arg2,

}


Usage example:

Copy code

The code is as follows:

{$webTitle|md5|strtoupper|substr=0,3} 
{$number|number_format=2} 
{$varname|function1|function2=arg1,arg2,### }
Copy after login

The example is as follows:

Copy code

The code is as follows:

function Cate($cid){ 
$Cate=D(&#39;Cate&#39;); 
$Cate=$Cate->where(&#39;id=&#39;.$cid)->find(); 
return $Cate[&#39;title&#39;]; 
}
Copy after login

If I want to call this function in the template, I can write it like this in the template

Copy code

The code is as follows:

{$vo.cid|cate=###}
Copy after login
Note: Customization The function should be placed in the project application directory/common/common.php. Here's the key.


Note: There can be no spaces between
{ and $ symbols, and there will be no problem with spaces in subsequent parameters;

indicates the parameter position of the template variable itself;
supports multiple functions , supports spaces between functions;

supports function shielding function, and the list of prohibited functions can be configured in the configuration file;

supports variable caching function, and repeated variable strings will not be parsed multiple times.

Related recommendations:

ThinkPHP template replacement and system constants and application examples

######

The above is the detailed content of ThinkPHP template variable output, custom functions and judgment statement usage. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!