在PHP模板引擎smarty生成随机数的方法和math函数详解


Posted in PHP onApril 24, 2014

这个当然绝对是可行的,但过于复杂,下面作者就如何直接在smarty模板中生成随机数这个小技巧和大家分享一下。

现在假设在smarty模板中需要生成一个125-324之间的随机数,那么可以按如下写法:

{math equation=rand(125,324)}

这样就实现了我们的目的了,怎么样?是不是很简单,其实这里主要用到了smarty模板中的math函数,下面对Smarty math函数的作用以及用法做个简要的讲解。

math 允许模板设计者在模板中进行数学表达式运算. 均表达式中可以使用任何数值类型的变量,结果在 math 标签的位置输出. 表达式中使用的变量被当做参数传递给函数,可以是模板变量或静态值. 目前可以使用的运算符有:+, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans 和 tan .关于数学函数的详细信息,请查看 PHP 文档。

如果指定了 "assign" 这个特殊属性,该函数的输出值将被赋给由 assign 指定的模板变量,而不是直接输出。

不过需要注意的是: 由于使用了 php 的 eval() 函数,math 函数的执行效率不高. 在 PHP 中做数学运算效率会更高一些,因此要尽可能在 PHP 中做数学运算,将结果赋给模板变量。

smarty math 函数演示

{* $height=4, $width=5 *}
{math equation="x + y" x=$height y=$width}

输出结果:9
{* $row_height = 10, $row_width = 20, #col_div# = 2, assigned in template *}
{math equation="height * width / division"
 height=$row_height
 width=$row_width
 division=#col_div#}

输出结果:100
{math equation="(( x + y ) / z )" x=2 y=10 z=2}

输出结果:6
{* you can supply a format parameter in sprintf format *}
{math equation="x + y" x=4.4444 y=5.0000 format="%.2f"}

输出结果:9.44
PHP 相关文章推荐
PHP高级OOP技术演示
Aug 27 PHP
php 文章采集正则代码
Dec 28 PHP
php快速url重写 更新版[需php 5.30以上]
Apr 20 PHP
ThinkPHP模板输出display用法分析
Nov 26 PHP
初识laravel5
Mar 02 PHP
codeigniter显示所有脚本执行时间的方法
Mar 21 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
php 的反射详解及示例代码
Aug 25 PHP
php实现简单的权限管理的示例代码
Aug 25 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 PHP
php+ajax实现文件切割上传功能示例
Mar 03 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 #PHP
php smarty模板引擎的6个小技巧
Apr 24 #PHP
PHP中使用smarty生成静态文件的例子
Apr 24 #PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
Apr 24 #PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
Apr 24 #PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 #PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
Apr 24 #PHP
You might like
PHP 简单数组排序实现代码
2009/08/05 PHP
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
JavaScript触发器详解
2007/03/10 Javascript
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
javascript基本算法汇总
2016/03/09 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
客户端验证用户名和密码的方法详解
2016/06/16 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
AngularJS递归指令实现Tree View效果示例
2016/11/07 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
vue 获取元素额外生成的data-v-xxx操作
2020/09/09 Javascript
jQuery实现日历效果
2020/09/11 jQuery
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
Python实现最常见加密方式详解
2019/07/13 Python
Python 解析简单的XML数据
2020/07/24 Python
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
大学生咖啡店创业计划书
2014/01/21 职场文书
初中英语教学反思
2014/01/25 职场文书
工程管理英文求职信
2014/03/18 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
会议承办单位欢迎词
2019/07/09 职场文书