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的本意就是要实现代码和模板分离,应该认定模板就是界面设计的人员用的,如果过多地加复杂逻辑,对他们来说就是一种折磨了。
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2020-04-20 15:07PHP教程网 PHP教程
本篇文章是对Smarty中如何获取数组的长度以及smarty调用php函数的方法进行了详细的分析介绍,需要的朋友参考下
延伸 · 阅读
- 2020-04-20解析PHP中数组元素升序、降序以及重新排序的函
- 2020-04-20数组与类使用PHP的可变变量名需要的注意的问题
- 2020-04-19实例讲解Java编程中数组反射的使用方法
- 2020-04-19Ruby数组(Array)学习笔记
- 2020-04-18使用Smarty 获取当前日期时间和格式化日期时间的
- 2020-04-18解析smarty模板中类似for的功能实现
- PHP教程
基于php数组中的索引数组和关联数组详解
下面小编就为大家分享一篇基于php数组中的索引数组和关联数组详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...
- PHP教程
PHP 事件机制(2)
于上一个版本的区别,把事件处理简化,需要的朋友可以参考下。 ...
- PHP教程
Laravel框架FormRequest中重写错误处理的方法
这篇文章主要介绍了Laravel框架FormRequest中重写错误处理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...
- PHP教程
php自定义函数call_user_func和call_user_func_array详解
看UCenter的时候有一个函数call_user_func,百思不得其解,因为我以为是自己定义的函数,结果到处都找不到,后来百度了一下才知道call_user_func是内置函数 ...
- PHP教程
PHP采集利器 Snoopy 试用心得
Snoopy是一个php类,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。 ...
- PHP教程
PHP命名空间与自动加载机制的基础介绍
这篇文章主要给大家介绍了关于PHP命名空间与自动加载机制的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用PHP具有一定的参考学习价...
- PHP教程
apache+php+mysql安装配置方法小结
以前用一直用PHP XAMPP 软件站集成软件包开发PHP项目,不知道单独安装各个模块会有那么多问题,这次花了大半天才将环境搭建好。 ...
- PHP教程
php常用Output和ptions/Info函数集介绍
本篇文章是对php中常用Output和ptions/Info函数集进行了详细的分析介绍,需要的朋友参考下 ...