在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 方便水印和缩略图的图形类
May 21 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
php使用NumberFormatter格式化货币的方法
Mar 21 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
wampserver改变默认网站目录的办法
Aug 05 PHP
php实现无限级分类(递归方法)
Aug 06 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
Oct 08 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
Feb 14 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
PHP 中TP5 Request 请求对象的实例详解
Jul 31 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
thinkPHP5框架导出Excel文件简单操作示例
Aug 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中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
Smarty保留变量用法分析
2016/05/23 PHP
php加密解密字符串示例
2016/10/13 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
PHP中SESSION过期设置
2021/03/09 PHP
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
如何用js控制frame的隐藏或显示的解决办法
2013/03/20 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
2014/02/12 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
2018/02/09 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
微信小程序生成二维码的示例代码
2019/03/29 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
Python重新引入被覆盖的自带function
2014/07/16 Python
简单介绍Python中的len()函数的使用
2015/04/07 Python
Python实现简单的代理服务器
2015/07/25 Python
python 网络编程常用代码段
2016/08/28 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
护理专业个人求职简历的自我评价
2013/10/13 职场文书
房屋转让协议书
2014/04/11 职场文书
装修协议书范本
2014/04/21 职场文书
团队口号大全
2014/06/06 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
财务务虚会发言材料
2014/10/20 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
600字作文之感受大自然
2019/11/27 职场文书
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis