thinkphp3.0基础模板引擎变量为空时输出默认值

  • 来源:
  • 更新日期:2018-05-14

摘要:在thinkphp的模板引擎中,如果输出的变量是空的,但我们的设计需求又不想让这里空出一大块,需要给这个变量指定一个默认值,也就是说,如果 这个变量为空,就显示我们指定的默认值。那么这个可不可以在thinkphp的模板引擎里面实现呢?实现当然是可以的,有的同学可能会疑问,直接用if去 判断不就可以实现了吗?呵呵,因为是在模板里面,如果在里面写大量的php代码,就达不到MVC的那个效果了,在模板里面

在thinkphp的模板引擎中,如果输出的变量是空的,但我们的设计需求又不想让这里空出一大块,需要给这个变量指定一个默认值,也就是说,如果 这个变量为空,就显示我们指定的默认值。那么这个可不可以在thinkphp的模板引擎里面实现呢?实现当然是可以的,有的同学可能会疑问,直接用if去 判断不就可以实现了吗?呵呵,因为是在模板里面,如果在里面写大量的php代码,就达不到MVC的那个效果了,在模板里面尽量全部用标签来处理,其实在 thinkphp里面有一个语法规则,格式是这样:

002UASMrzy7605pjKJv15&690.jpg

 

{$变量|default=”默认值”}

这里的default不是函数,而是系统的一个语法规则,例如:

{$name|default=’名称为空’}

对于一些系统变量的输出,也是可以支持默认值的哦,比如获取post和get参数的时候,而且这个默认值是可以支持HTML语法的,很强大吧!下面小编通过一个例子来演示这个默认值的效果,无忧主机(www.51php.com)小编建议大家学习期间在本地搭建php虚拟主机的环境,方便调试!

在默认控制器(IndexAction.class.php)中加入以下代码:

 

<?php class IndexAction extends Action { public function index() { $name=\'\'; $this->assign(\'name\',$name); $this->display(); } } ?>

然后在其对应的模板(index.html)里面写如下代码,来测试下

name变量的值:<{$name|default=’name的值为空’}> <br>

get参数user的值:<{$Think.get.user|default=’传递参数为空’}>

传递get参数的方法是http://localhost/index.php/index/index/user/test

用/分开,和传统不一样,关于几种URL模式还会在后面详细讲到的。保存好代码后就可以到浏览器中去访问测试了。