`
jqj031
  • 浏览: 72868 次
  • 性别: 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]smarty实例及ajax的应用

    Smarty是一个在PHP中广泛使用的模板引擎,它将呈现逻辑与业务逻辑分离,使得开发者可以更加专注于网站的结构和设计,而无需关心后端代码的实现。在这个实例中,`index.php`是Smarty模板的主入口,它负责调用Smarty...

    php的模板 Smarty-2.6.19.zip

    Smarty是一个在PHP编程环境中广泛使用的模板引擎,它的主要目的是将业务逻辑与展示逻辑分离,让开发者可以专注于编写后端代码,而设计师则可以独立地设计前端界面,提高开发效率和代码可维护性。Smarty-2.6.19.zip这...

    smarty+AJAX.rar_ajax_ajax php_php ajax_smarty_smarty ajax

    Smarty是一个流行的PHP模板引擎,它将业务逻辑与视图层分离,使得开发者可以更专注于页面设计,而不用关心PHP代码的复杂性。Ajax,全称Asynchronous JavaScript and XML,是一种在不重新加载整个网页的情况下,能够...

    smarty模板,调用静态页面模板,Smarty-2.6.22

    6. **预处理和后处理**:Smarty允许你在模板渲染前后执行自定义函数,这可以通过设置`pre Enlighter`和`post Enlighter`回调实现。 7. **安全功能**:Smarty提供了一些内置的安全过滤器,如`escape`,用于防止XSS...

    在smarty中调用php内置函数的方法

    总结一下,在SMARTY模板中调用PHP内置函数的方法主要分为两种: 1. 直接调用:无需特别处理,SMARTY会自动识别并调用PHP的内置函数。 2. 特殊标记调用:当直接调用出现问题时(如数组操作函数),可以加上“@”前缀...

    一个轻量级的php命名空间感知自动加载生成器和phar归档生成器_PHP_Smarty_下载.zip

    这个函数可以注册一个或多个回调函数,当尝试实例化未定义的类或接口时,这些回调函数会被调用,试图加载对应的类文件。而“命名空间感知”的自动加载器则意味着它能够根据类所在的命名空间路径,正确地定位并加载...

    Smarty使用自定义资源的方法

    例如,如果我们要从PHP脚本中使用这个自定义资源来显示模板,可以调用Smarty的`display`方法,并传入资源名称以及模板名称。在本例中,`smarty->display("db:index.tpl")`表示将显示名为index.tpl的模板,该模板内容...

    基于Ajax和Smarty的新闻管理系统的设计与实现.pdf

    后台管理设计通过后台管理,可以进行可视化的新闻内容输入和编辑,提交之后,先把数据添加到数据库中,然后调 用所选择的模板,通过Smarty技术生成静态新闻详细内容的页面,以数据库中该新闻的ID号进行命名,并存入...

    Thinkphp+smarty+uploadify实现无刷新上传

    在配置uploadify插件时,我们指定了swf文件路径、上传处理的PHP页面URL、按钮文本、上传文件的高度和宽度、文件类型描述、允许的文件后缀、上传方法(这里使用的是POST方法),以及上传成功后的回调函数upload...

    PHP深度分析:101个核心技巧、窍门和问题解决方法 + 源代码

    - **模板引擎**:如Twig或Smarty,简化HTML与PHP的混合编写。 9. **错误和日志**: - **错误报告**:设置合适的错误级别,理解和处理错误。 - **日志记录**:使用error_log或自定义日志系统,追踪和诊断问题。 ...

    基于PHP的fanqie shop番茄社区多门店网店系统 php源码.zip

    3. **模板引擎**:为了实现前后端分离,fanqie shop可能采用了某种模板引擎,如Smarty或Twig,将业务逻辑与视图呈现分开,使开发者能更专注于页面布局和样式设计。 4. **支付集成**:网店系统通常需要集成第三方...

    adodb手册,fleaPHP手册,mysql手册,smarty手册,zendframeworks手册,正则手册

    手册将详细解释其组件如控制器、模型、视图、数据库访问、服务、安全性和性能调优等。对于大型企业级应用开发,Zend Framework提供了强大的工具和支持。 6. **正则表达试.chm**: 正则表达式是文本处理和数据验证...

    基于PHP的仿7881游戏交易平台整站php版源码.zip

    6. **支付接口集成**:游戏交易平台可能集成了第三方支付接口,如支付宝、微信支付等,需要处理支付回调、订单状态同步等逻辑。 【其他技术】 1. **前端技术**:HTML、CSS和JavaScript构建用户界面,可能使用了...

    PHP+TXT站点管理系统0.8版

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

    ajax结合mysql数据库和smarty实现局部数据状态的刷新方法

    在这个文件中,我们首先引入Mysql.class.php(自定义的MySQL数据库连接类)和Smarty.class.php(Smarty模板引擎)。然后,我们实例化这两个类,从MySQL数据库中获取所有用户数据,并将其分配给Smarty变量`$lists`。...

    php模板(实例)技术

    1. **Smarty模板引擎**:Smarty是PHP中最著名的模板引擎之一,它提供了一个清晰的结构,将PHP代码嵌入在HTML中,通过变量和函数调用来传递数据。例如,`{$variable}`用于显示PHP变量,`{foreach}`用于循环遍历数组。...

    基于PHP的蓝色商务公司php企业网站源码(XDcms内核).zip

    【标题】中的“基于PHP的蓝色商务公司php企业网站源码(XDcms内核)”表明这是一个使用PHP语言开发的企业级网站模板,其设计风格为蓝色调,并且核心框架基于XDcms。XDcms是一款常见的PHP内容管理系统,适用于快速构建...

    电子商城(php)_hbzms5_PHP电子商城_php_

    5. **支付接口集成**:可能包含了与第三方支付平台(如支付宝、微信支付)的API接口对接,涉及API调用、参数传递、回调处理等。 6. **商品展示与搜索**:如何设计商品分类、搜索功能,可能涉及到数据排序、分页技术...

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

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

    一个大公司的PHP面试题

    在 PHP 中,可以使用 array_map 函数将数组中每个元素应用回调函数。例如,要将数组$arr1 转换成数组$arr2,可以使用以下代码: ``` $arr1 = array(...); $arr2 = array(); foreach ($arr1 as $key => $value) { $...

Global site tag (gtag.js) - Google Analytics