ThinkPHP模板引擎的可变输出细节

ThinkPHP模板引擎的可变输出细节
本文在ThinkPHP模板引擎输出变量的使用进行了分析。分享给你供你参考。具体分析如下:

我们已经知道如何使用动作中的赋值方法为模板变量赋值,赋值之后如何在模板文件中输出变量的值呢

如果我们在操作中指定名称模板变量:

复制代码如下:$name = 'thinkphp;

美元->分配('name',$name);

使用内置的模板引擎输出变量,只需要在模板文件中使用:

{ $ }

编译的模板的结果是

复制代码代码如下所示:

最后,我们可以显示在标签位置ThinkPHP输出结果,当我们运行发现有模板标签{美元之间没有空间,否则标签无效。常见的标签默认标签{是}结束标签,也可以通过设置tmpl_l_delim和tmpl_r_delim改变。例如,我们在项目配置文件中定义:

复制代码代码如下:'tmpl_l_delim= >< {,

tmpl_r_delim= >>},

然后,上述变量输出标签应更改为:
以下内容由默认标签定义解释。分配方法中的第一个参数是模板文件中使用的变量名。如果我们将其更改为以下代码,

复制代码如下:$name = 'thinkphp;

美元->分配('name2,$name);

如果再次使用{ } }输出,它将是无效的。你必须使用{ $ 2 }输出模板变量的值。如果我们需要将用户数据对象分配给模板变量,

复制代码如下:用户名= M('name');

$用户= $ >查找(1);

美元->分配(用户,为用户);

也就是说,$用户实际上是一个数组变量,我们可以使用下面的方法输出相关的值:

复制代码代码如下:名称的{ } } { 'name'用户名 / /输出用户

{ } } { 'email'用户名 / /输出用户的电子邮件地址

如果$用户是一个对象而不是数组。

复制代码如下:用户名= M('name');

$用户>查找(1);

美元->分配(用户,为用户);

关联属性值可以用以下方式输出:

复制代码代码如下:{用户名:用户名/输出用户

{用户:电子邮件输出用户的电子邮件地址

在3.1版本之后,类的属性输出被调整支持本地PHP对象编写,因此上面的标记需要更改为:

复制代码代码如下:{用户名称> >输出用户名称

{用户>电子邮件>输出用户的电子邮件地址

为了方便模板的定义,您还可以支持点语法,例如,上面

复制代码代码如下:名称的{ } } { 'name'用户名 / /输出用户

{ } } { 'email'用户名 / /输出用户的电子邮件地址

可改为

复制代码代码如下:{用户名称}

{ $用户电子邮件}

因为点文法的输出是默认的方式,所以上面的两个方法在没有配置的情况下是等价的。我们可以通过tmpl_var_identify参数配置决定点语法输出效果。以下列输出为例:{用户名称}

如果tmpl_var_identify设置为数组,然后

{姓名}和{用户名,用户名,{ 'name' } }是等效的,即输出数组变量。

如果tmpl_var_identify设置OBJ,然后

{用户名称}和用户名称}是等价的,也就是输出对象的属性。

如果tmpl_var_identify是空白的,系统会自动确定输出变量是数组或对象,这种方式会影响一定的效率,只有二维数组和对象属性。

如果它是多维数组或多层对象属性的输出,可以使用以下定义:

复制代码代码如下:{ $用户。sub.name } / /使用点语法输出

或使用

复制代码代码如下:价值的{ { } {用户名'sub的'name' } } / /输出三维阵列

用户的多级属性:子:名称输出对象

希望本文有助于基于ThinkPHP框架的PHP程序设计人。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部