thinkphp模板变量输出的几种情况及注意点

本文总结了ThinkPHP中模板变量输出的三种情况:无需定界符的变量输出,条件判断中的变量引用,以及常规的定界符包裹的变量输出。在条件判断中,需要注意数组变量应使用索引方式而非对象属性方式引用,以避免引用失效问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其实在thinkphp中模板变量输出是有几种不同的情况的,刚开始接触thinkphp的时候不是很了解,现在来稍微总结一下。

  1. 第一种将某个标签的name属性作为变量,这个时候在模板中这个变量的写法是像name='news'这样的 ,直接写变量名news,不加定界符,前面也不加$。

  2. 第二种是在类似<if>这样的判断标签里的condition条件中书写的时候,<if condition="$vo['webImg'] neq ''">变量vo就要写成$vo,也就是变量名前面要加上一个$符号。这种写法和php语法一致,但当初在这里踩了坑,因为一直习惯了thinkphp的模板变量输出语法是要加定界符的,但其实不是所有情况都是这样。另外,这里有一点要注意的是,对数组变量最好用形如$vo['webImg']
    的方式引用,而不是像$vo.webImg 这样引用对象的属性方式来引用,因为有时这种引用方式会失效,例如<if condition="$vo.id eq $type.id"> ,在这里,第一个$vo.id 的引用没有问题,而第二个$type.id 则会有问题。要改成$type['id'] 方才有效。

  3. 第三种就是最常见的情况了,也就是随便查一下手册都有说明的,即类似<img src="{daaxun$vo.webImg}"> 这样的情况,变量vo前面需要加上一个$符号,然后外面还要用定界符包起来。这里左定界符是自定义的{daaxun ,右定界符是自定义的}
<volist name='news' id='vo'>
                        <div class="xwzxdiv">
                            <if condition="$vo['webImg'] neq ''">
                                <div>
                                    <a href="newscont_{daaxun$vo.id}.html"><img src="{daaxun$vo.webImg}"></a>
                                </div></if>
                            <div class="xwzxtxt">
                                <dl>
                                    <dt><h3 title="{daaxun$vo.theme}"><a href="newscont_{daaxun$vo.id}.html">{daaxun$vo.theme}</a></h3></dt>
                                    <dd class="preview"><p>{daaxun$vo.summary}</p></dd>
                                    <dd class="info">发表于:<span>{daaxun$vo.revTime}</span><a href="newscont_{daaxun$vo.id}.html">【查阅全文】</a></dd>
                                </dl>
                            </div>
                        </div>
                    </volist>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值