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

 更新时间:2013年06月20日 11:05:10   作者:  
本篇文章是对Smarty中如何获取数组的长度以及smarty调用php函数的方法进行了详细的分析介绍,需要的朋友参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

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垃圾回收机制超详细介绍

    垃圾回收机制是一种动态存储分配的方案。它会自动释放程序不再需要的已分配的内存块。垃圾回收机制可以让程序员不必过分关心程序内存分配,从而将更多的精力投入到业务逻辑
    2022-08-08
  • 几个优化WordPress中JavaScript加载体验的插件介绍

    几个优化WordPress中JavaScript加载体验的插件介绍

    这篇文章主要介绍了几个优化WordPress中JavaScript加载体验的插件,一般来说在WordPress中加载JavaScript最好使用wp_enqueue_script()函数以减少问题提高效率,需要的朋友可以参考下
    2015-12-12
  • Apache中php.ini的设置方法

    Apache中php.ini的设置方法

    无论是IIS 还是 Apache, 在启动PHP的时候,默认都从系统变量"C:\Windows"这个目录中寻找。 如果要在系统中同时使用IIS和Apache来运行PHP,而且PHP的版本又不一样,那么需要为Apache指定自己的PHP环境。
    2013-02-02
  • php中文语义分析实现方法示例

    php中文语义分析实现方法示例

    这篇文章主要介绍了php中文语义分析实现方法,结合实例形式分析了PHP基于BosonNLP扩展实现中文语义分析的具体操作步骤与相关实现技巧,需要的朋友可以参考下
    2019-09-09
  • php提示Warning:mysql_fetch_array() expects的解决方法

    php提示Warning:mysql_fetch_array() expects的解决方法

    这篇文章主要介绍了php提示Warning:mysql_fetch_array() expects的解决方法,是一个比较典型的php程序错误排查案例,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • PHP MSSQL 存储过程的方法

    PHP MSSQL 存储过程的方法

    在PHP中调用MS SQL存储过程的核心代码
    2008-12-12
  • php实现PDO中捕获SQL语句错误的方法

    php实现PDO中捕获SQL语句错误的方法

    这篇文章主要介绍了php实现PDO中捕获SQL语句错误的方法,结合实例形式分析了PDO中常见的错误、警告及异常模式相关属性设置与使用技巧,需要的朋友可以参考下
    2017-02-02
  • PHP运行SVN命令显示某用户的文件更新记录的代码

    PHP运行SVN命令显示某用户的文件更新记录的代码

    使用SVN开发者们平时开发或代码上线过程中需要知道某个时间段内修改或添加过那些文件,所以用PHP写了个小程序,直接在浏览器中调用即可
    2014-01-01
  • PHP连接SQLSERVER 注意事项(附dll文件下载)

    PHP连接SQLSERVER 注意事项(附dll文件下载)

    文章是网上找的,从来没有弄过,一直是php+mysql 现在搞个php+mssql 也不懂,没有办法,从网上找了些资料,我是看了这些资料,才连上的mssql的第一次感觉真的挺费劲的,这些可能不需要全部看完就ok,我也是这一点那一点,可能是我比较笨吧!呵呵
    2012-06-06
  • php利用header函数实现文件下载时直接提示保存

    php利用header函数实现文件下载时直接提示保存

    相信很多人在实现文件下载功能时会遇到这种情况,本意是点击下载连接提示保存对话框,事情往往事与愿违,例如PDF这样的文件会直接在浏览器中现实文件内容,而不是提示保存。通过下面的方法可以解决这个问题。
    2009-11-11

最新评论

?


http://www.vxiaotou.com