探讨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 相关文章推荐
模拟OICQ的实现思路和核心程序(一)
Oct 09 PHP
如何将数据从文本导入到mysql
Oct 09 PHP
php 向访客和爬虫显示不同的内容
Nov 09 PHP
PHP中实现汉字转区位码应用源码实例解析
Jun 14 PHP
关于PHP的curl开启问题探讨
Apr 08 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
完整删除ecshop中获取店铺信息的API
Dec 24 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 PHP
Yii2.0建立公共方法简单示例
Jan 29 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
Feb 12 PHP
thinkphp框架使用JWTtoken的方法详解
Oct 10 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
thinkphp连贯操作实例分析
2014/11/22 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
简单理解js的冒泡排序
2016/12/19 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
python循环监控远程端口的方法
2015/03/14 Python
给Python初学者的一些编程技巧
2015/04/03 Python
python自动zip压缩目录的方法
2015/06/28 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
python实现定时自动备份文件到其他主机的实例代码
2018/02/23 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
使用django-guardian实现django-admin的行级权限控制的方法
2018/10/30 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
对python判断是否回文数的实例详解
2019/02/08 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
班主任对学生的评语
2014/04/26 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
明星邀请函
2015/02/02 职场文书
边城读书笔记
2015/06/29 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
Python中Matplotlib的点、线形状、颜色以及绘制散点图
2022/04/07 Python