ThinkPHP5开发连载74内置标签之标签嵌套+原生PHP

上一篇文章讲解“模型-内置标签之资源文件加载”,本篇文章讲解“模板-内置标签之标签嵌套+原生PHP”。

标签嵌套

模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套。

系统内置的标签中,volist、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等标签都可以嵌套使用。

以volist标签为例:

在Index控制器中,新建tagnest方法,并为模板赋值数组

新建nest.html模板,并在模板中输出

预览:

原生PHP

PHP代码可以和标签在模板文件中混合使用,可以在模板文件里面书写任意的PHP语句代码,包括下面两种方式:

1. 使用PHP标签

在Index控制器中,新建protophp方法

新建protogene.html模板,并在其中使用原生PHP输出数据

预览:

注意:

1. 建议需要使用PHP代码的时候尽量采用php标签,因为原生的PHP语法可能会被配置禁用而导致解析错误。

2. 使用原生PHP代码

在protogene.html模板中,使用原生PHP代码:

访问protophp方法,预览:

注意:

1. 如果设置了tpl_deny_php参数为true,就不能在模板中使用原生的PHP代码,但是仍然支持PHP标签输出。

2. php标签或者php代码里面就不能再使用标签(包括普通标签和XML标签)了,因此下面的几种方式都是无效的。

【例2】php标签与php代码使用无效的居中方式。

1)php标签中使用模板标签,无效

2)PHP标签里面使用了{$user}普通标签输出变量,无效

3)PHP标签里面使用了$user.name点语法变量输出,无效

注意:

1. 简而言之,在PHP标签里面不能再使用PHP本身不支持的代码。

ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员

关注卓象程序员,定期发布技术文章

下一篇讲解“模板-内置标签之定义标签”

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181011A0HJ2200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券