在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 相关文章推荐
基于OpenCV的PHP图像人脸识别技术
Oct 11 PHP
关于PHP session 存储方式的详细介绍
Jun 25 PHP
php中session退出登陆问题
Feb 27 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
PHP实现无限极分类图文教程
Nov 25 PHP
php递归法读取目录及文件的方法
Jan 30 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
thinkphp autoload 命名空间自定义 namespace
Jul 17 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
phpstorm 配置xdebug的示例代码
Mar 31 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/06/03 PHP
php下将XML转换为数组
2010/01/01 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
php之可变函数的实例详解
2017/09/13 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
JavaScript基础语法让人疑惑的地方小结
2012/05/23 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
原生JavaScript实现刮刮乐
2020/09/29 Javascript
[01:10]DOTA2次级职业联赛 - Fly战队宣传片
2014/12/01 DOTA
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
python对list中的每个元素进行某种操作的方法
2018/06/29 Python
利用PyQt中的QThread类实现多线程
2020/02/18 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
校园运动会广播稿
2014/10/06 职场文书
商铺租房协议书范本
2014/12/04 职场文书
2015年中学元旦晚会活动方案
2014/12/09 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
2021/03/29 PHP
JavaScript 原型与原型链详情
2021/11/02 Javascript
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS