探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解


Posted in PHP onJune 20, 2013

Smarty中如何获取数组的长度
前提假设:
分配了一个数组array给Smarty,假设Smarty的分界符为'{' 和'}'。
在很多资料上都看到,在Smarty中要求数组的长度时,可以用在数组后便加|count的方法调用。即通过{array|count}获得array的长度。但是今天在写模板时,发现这样得不到数组的长度,而只是得到一个返回的字符串Array。也就是说仅仅是返回了{array}的结果,而没有返回其array的长度。

查看smarty\plugins文件夹,发现并没有count的相关方法,也就是说,count是直接调用了php中的方法。
后来通过网络上的资料,发现可以在count前面加@,从而正确的获取数组的长度。再进一步查看Smarty的源码,发现Smarty对属性调节器后边的方法名进行处理时,会对前边加@的进行特殊处理。因此作出判断:在Smarty中的属性调节器中调用php中定义好的函数时,可以通过加@来表示。

1、对类型为数组的方法进行测试时,发现不加@符号都会出错。比如:要对一个数组调用count方法求出数组的长度,就可以这样调用{array|@count},而要对数组调用end方法得出数组的最后一组数据时,则可以通过{array|@end}。
2、在对字符串的相关函数进行测试,发现加不加@都可以正常的调用。
3、其他的尚未认真测试。对于在smarty中调用复杂的php函数不予鼓励,因为Smarty的本意就是要实现代码和模板分离,应该认定模板就是界面设计的人员用的,如果过多地加复杂逻辑,对他们来说就是一种折磨了。

 

PHP 相关文章推荐
PHP 观察者模式的实现代码
May 10 PHP
thinkphp的c方法使用示例
Feb 24 PHP
PHPAnalysis中文分词类详解
Jun 13 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
Oct 01 PHP
php生成验证码函数
Oct 20 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
twig模板获取全局变量的方法
Feb 05 PHP
Yii2使用自带的UploadedFile实现的文件上传
Jun 20 PHP
[原创]php正则删除img标签的方法示例
May 27 PHP
PHP获取链表中倒数第K个节点的方法
Jan 18 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
解析yii数据库的增删查改
Jun 20 #PHP
在yii中新增一个用户验证的方法详解
Jun 20 #PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
Jun 20 #PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 #PHP
解析PHP中数组元素升序、降序以及重新排序的函数
Jun 20 #PHP
解析php中的fopen()函数用打开文件模式说明
Jun 20 #PHP
深入解析PHP内存管理之谁动了我的内存
Jun 20 #PHP
You might like
php生成随机颜色方法汇总
2014/12/03 PHP
PHP使用PHPexcel导入导出数据的方法
2015/11/14 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
nodejs教程之入门
2014/11/21 NodeJs
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
Python运维开发之psutil库的使用详解
2018/10/18 Python
对python中的高效迭代器函数详解
2018/10/18 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
英国家电直销:Appliances Direct
2016/09/22 全球购物
解释一下抽象方法和抽象类
2016/08/27 面试题
必须要使用游标的SQL语句有那些
2012/05/07 面试题
区三好学生主要事迹
2014/01/30 职场文书
面试后感谢信
2014/02/01 职场文书
社团文化节策划书
2014/02/01 职场文书
党员活动日总结
2014/05/05 职场文书
开工仪式策划方案
2014/05/23 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
2015年世界水日活动总结
2015/02/09 职场文书
民事申诉状范本
2015/05/20 职场文书