在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 相关文章推荐
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
php 正则表达式小结
Aug 31 PHP
PHP开启gzip页面压缩实例代码
Mar 11 PHP
php printf输出格式使用说明
Dec 05 PHP
php替换超长文本中的特殊字符的函数代码
May 22 PHP
PHP中构造函数和析构函数解析
Oct 10 PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 PHP
HTML中嵌入PHP的简单方法
Feb 16 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
Apr 04 PHP
Composer设置忽略版本匹配的方法
Apr 27 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
Nov 20 PHP
PHP实现支持CURL字符串证书传输的方法
Mar 23 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&&mysql)二
2006/10/09 PHP
php 应用程序安全防范技术研究
2009/09/25 PHP
PHP插入排序实现代码
2013/04/04 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
javaScript实现浮点数转十六进制字符
2013/10/29 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
[01:55]《走出家门看比赛》——DOTA2 2015国际邀请赛同城线下观战
2015/07/18 DOTA
Python数据结构之翻转链表
2017/02/25 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
用python读取xlsx文件
2020/12/17 Python
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
个人整改方案范文
2014/10/25 职场文书
煤矿安全保证书
2015/02/27 职场文书
地道战观后感400字
2015/06/04 职场文书
法律意见书范本
2015/06/04 职场文书
小学远程教育工作总结
2015/08/13 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
Java异常体系非正常停止和分类
2022/06/14 Java/Android