`
jqj031
  • 浏览: 71500 次
  • 性别: Icon_minigender_2
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

smarty调PHP方法

PHP 
阅读更多
前提假设:
分配了一个数组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+TXT站点管理系统0.8版

    7\查看变量方法:打开smarty的调试输出开关即可。includes/smarty.php文件中的第18行。 7\更多功能期待您的参与! 计划中的开发: 一键安装 其它程式请精通PHP的朋友进行修改吧. 版权诚明: 本程式是个人作品,您可以...

    Silex_SmartyServiceProvider:用于Silex微框架的Smarty模板引擎服务提供商(扩展)。 支持Smarty 2和3

    SmartyServiceProvider SmartyServiceProvider提供与[Smarty]( )模板引擎的集成。... 在提供程序的register()方法期间调用它。 例如,您可以使用此选项进行一些自定义的灵巧配置。 服务 smarty :

    PHP工作笔记.zip

    [三六例 PHP开发环境(Windows方式二)][三七例 PHP开发环境(Linux方式一)][三八例 PHP开发环境(Linux方式二)][三九例 PHP开发环境(Linux方式三)][四十例 Curl模拟表单提交][四一例 Smarty模板][四二例 加载规范例子]...

    php网络开发完全手册

    7.5.6 通过回调函数执行正则表达式 7.5.6 的搜索和替换——preg_replace_ 7.5.6 callback 114 7.5.7 用正则表达式进行字符串分割 7.5.7 ——preg_split 115 7.6 字符操作的注意事项 117 7.7 小结 118 第8章 数组操作...

    一款性能优越的PHP MVC框架EaglePHP(V1.4)

    7、使用Smarty模板引擎,分离表现层与业务层。 8、提供统一的自动加载模式和统一的命名空间。 9、提供技术人员开发调式工具及错误跟踪系统。 10、基于页面URL和表单(隐藏域)Action的驱动架构。 11、自动生成...

    PHP商城系统 V2.0.5 beta 2.rar

     商品详情(AJAX 回调数据)  购物车 调整  程序重大修改:  缓存重写  模板重写  程序大量优化 =====================================================================================================...

    php+txt站点管理系统 1.1

    5\运用国际流行的SMARTY技术,参数可调. 6\模板自定义编辑,不同类型可以交叉调用. 7\友情链接自定义,自定义CSS风格. 8\一键修复所有数据结构。 9\读写分流技术,不会造成数据丢失。 PHP+TXT站点管理系统v1.1更新: 1...

    EaglePHP开源框架&CMS;后台管理系统

    7、使用smarty模板引擎,分离表现层与业务层。 8、提供统一的自动加载模式和统一的命名空间。 9、提供技术人员开发调式工具及错误跟踪系统。 10、基于页面url和表单(隐藏域)action的驱动架构。 11、自动生成...

    EaglePHP 框架

    4、使用Smarty模板引擎,分离表现层与业务层。 5、提供统一的自动加载模式和统一的命名空间。 6、基于页面URL和表单(隐藏域)Action的驱动架构。 7、支持多个项目管理。 8、高安全性,内置Filter组件实现过滤机制,...

    PHP+TXT内容管理系统 v0.2版

    5\运用国际流行的SMARTY技术,参数可调. 6\模板自定义编辑,不同类型可以交叉调用. 7\友情链接自定义,自定义CSS风格. 8\一键修复所有数据结构。 9\读写分流技术,不会造成数据丢失。 10\更多功能等待您发现。 更新日志...

    EaglePHP开源框架 v2.7.rar

    7、使用smarty模板引擎,分离表现层与业务层。 8、提供统一的自动加载模式和统一的命名空间。 9、提供技术人员开发调式工具及错误跟踪系统。 10、基于页面url和表单(隐藏域)action的驱动架构。 11、自动生成数据库表...

    EaglePHP开源框架 v2.7.zip

    7、使用smarty模板引擎,分离表现层与业务层。 8、提供统一的自动加载模式和统一的命名空间。 9、提供技术人员开发调式工具及错误跟踪系统。 10、基于页面url和表单(隐藏域)action的驱动架构。 11、自动生成...

    Tommy framework v1.0.2

    Tommy framework是一个简单易用易于扩展的轻量级PHP框架,遵循Apache2开源协议发布。本框架操作灵活而不失功能强大,使用简单而又能扩展自如。作为PHP框架里的 “后起者...三、灵活的MODULE扩展设计,能够非常容易地调

    EaglePHP 开源框架 v 1.7 发布

    7、使用smarty模板引擎,分离表现层与业务层。 8、提供统一的自动加载模式和统一的命名空间。 9、提供技术人员开发调式工具及错误跟踪系统。 10、基于页面url和表单(隐藏域)action的驱动架构。 11、自动生成...

    EaglePHP 2.7

    7、使用Smarty模板引擎,分离表现层与业务层。 8、提供统一的自动加载模式和统一的命名空间。 9、提供技术人员开发调式工具及错误跟踪系统。 10、基于页面URL和表单(隐藏域)Action的驱动架构。 11、自动生成...

Global site tag (gtag.js) - Google Analytics