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

2015-01-24信息快讯网

本篇文章是对Smarty中如何获取数组的长度以及smarty调用php函数的方法进行了详细的分析介绍,需要的朋友参考下

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中利用explode函数分割字符串到数组
分享下页面关键字抓取components.arrow.com站点代码
php缓冲 output_buffering和ob_start使用介绍
php中自定义函数dump查看数组信息类似var_dump
php计算数组不为空元素个数的方法
5种PHP创建数组的实例代码分享
一个PHP二维数组排序的函数分享
php二维数组排序方法(array_multisort usort)
php安装xdebug/php安装pear/phpunit详解步骤(图)
sae使用smarty模板的方法
json的键名为数字时的调用方式(示例代码)
PHP使用SOAP调用.net的WebService数据
php调用Google translate_tts api实现代码
解析php中如何调用用户自定义函数
奉献出一个封装的curl函数 便于调用(抓数据专用)
Smarty foreach控制循环次数的实现详解
如何在smarty中增加类似foreach的功能自动加载数据
编写Smarty插件在模板中直接加载数据的详细介绍
关于PHP模板Smarty的初级使用方法以及心得分享
使用php 获取时间今天明天昨天时间戳的详解
解析yii数据库的增删查改
解析PHP中数组元素升序、降序以及重新排序的函数
数组与类使用PHP的可变变量名需要的注意的问题
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
使用array mutisort 实现按某字段对数据排序
深入array multisort排序原理的详解
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
解析smarty模板中类似for的功能实现
smarty基础之拼接字符串的详解
解析ajax事件的调用顺序
判断php数组是否为索引数组的实现方法
PHP 基于Yii框架中使用smarty模板的方法详解
如何判断php数组的维度
利用php递归实现无限分类 格式化数组的详解
探讨PHP调用时间格式的参数详解
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
PHP静态调用非静态方法的应用分析
PHP中如何调用webservice的实例参考
基于PHP Web开发MVC框架的Smarty使用说明
©2014-2024 dbsqp.com