在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中的正规表达式(一)
Oct 09 PHP
PHP5 安装方法
Jan 15 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
May 29 PHP
PHP如何解决网站大流量与高并发的问题
Jun 25 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
Oct 16 PHP
去除php注释和去除空格函数分享
Mar 13 PHP
PHP对象相互引用的内存溢出实例分析
Aug 28 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
Mar 20 PHP
PHPCMS忘记后台密码的解决办法
Oct 30 PHP
php把字符串指定字符分割成数组的方法
Mar 12 PHP
PHP abstract 抽象类定义与用法示例
May 29 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 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 存储文本换行实现方法
2010/01/05 PHP
浅析PHP Socket技术
2013/08/02 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
js改变鼠标的形状和样式的方法
2014/03/31 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
2019/12/20 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
python基础教程之基本内置数据类型介绍
2014/02/20 Python
详解Python如何获取列表(List)的中位数
2016/08/12 Python
windows下python和pip安装教程
2018/05/25 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
python使用多进程的实例详解
2018/09/19 Python
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
中专三年学习的个人自我评价
2013/12/12 职场文书
开工庆典邀请函范文
2014/01/16 职场文书
食品厂厂长岗位职责
2014/01/30 职场文书
保证书格式范文
2014/04/28 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书