在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 session和cookie使用说明
Apr 07 PHP
php学习之 数组声明
Jun 09 PHP
php对图像的各种处理函数代码小结
Jul 08 PHP
ThinkPHP让分页保持搜索状态的方法
Jul 02 PHP
php输入流php://input使用浅析
Sep 02 PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
Dec 11 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
php json相关函数用法示例
Mar 28 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
May 27 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 21 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
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
php实现json编码的方法
2015/07/30 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
Python代码解决RenderView窗口not found问题
2016/08/28 Python
浅析python递归函数和河内塔问题
2017/04/18 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
利用python在excel中画图的实现方法
2020/03/17 Python
Html5页面二次分享的实现
2018/07/30 HTML / CSS
化学实验员岗位职责
2013/12/28 职场文书
体育教师自我鉴定
2014/02/12 职场文书
机电专业大学生职业规划书范文
2014/02/25 职场文书
工商管理专业毕业生求职信
2014/05/26 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
干部外出学习心得体会
2016/01/18 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
带你彻底理解JavaScript中的原型对象
2021/04/14 Javascript
详解Spring事件发布与监听机制
2021/06/30 Java/Android