探讨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_Flame(Version:Progress)的原代码
Oct 09 PHP
提升PHP执行速度全攻略(下)
Oct 09 PHP
如何写php程序?
Dec 08 PHP
php cookis创建实现代码
Mar 16 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
Nov 07 PHP
深入php数据采集的详解
Jun 02 PHP
PHP中数组定义的几种方法
Sep 01 PHP
php计算程序运行时间的简单例子分享
May 10 PHP
php求一个网段开始与结束IP地址的方法
Jul 09 PHP
PHP面向对象详解(三)
Dec 07 PHP
PHP获取不了React Native Fecth参数的解决办法
Aug 26 PHP
利用laravel搭建一个迷你博客实战教程
Aug 13 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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
php实现文件上传基本验证
2020/03/04 PHP
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
2011/07/11 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
js中位运算的运用实例分析
2018/12/11 Javascript
爬虫利器Puppeteer实战
2019/01/09 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
vue实现扫码功能
2020/01/17 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
django反向解析和正向解析的方式
2018/06/05 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
Python随机数函数代码实例解析
2020/02/09 Python
如何基于Python按行合并两个txt
2020/11/03 Python
市场营销专业推荐信
2013/11/03 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
廉洁使者实施方案
2014/03/29 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
科技工作者先进事迹
2014/08/16 职场文书