上一篇文章讲解“模型-内置标签之资源文件加载”,本篇文章讲解“模板-内置标签之标签嵌套+原生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连载为卓象程序员原创,转载请联系卓象程序员
关注卓象程序员,定期发布技术文章
下一篇讲解“模板-内置标签之定义标签”
领取专属 10元无门槛券
私享最新 技术干货