在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在字符串中查找另一个字符串
Nov 19 PHP
PHP小程序自动提交到自助友情连接
Nov 24 PHP
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
PHP 编程安全性小结
Jan 08 PHP
php自定义函数之递归删除文件及目录
Aug 08 PHP
php学习笔记之面向对象编程
Dec 29 PHP
php解析字符串里所有URL地址的方法
Apr 03 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
May 12 PHP
PHP新特性详解之命名空间、性状与生成器
Jul 18 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 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数据集构建JSON格式及新数组的方法
2012/11/07 PHP
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
WordPress网站性能优化指南
2015/11/18 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
js的表单操作 简单计算器
2011/12/29 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
2018/08/25 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
简单谈谈python的反射机制
2016/06/28 Python
彻底搞懂Python字符编码
2018/01/23 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
Python:slice与indices的用法
2019/11/25 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
详解Pymongo常用查询方法总结
2021/01/29 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
阿里云:Aliyun.com
2017/02/15 全球购物
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
产品质量承诺书范文
2014/03/27 职场文书
政府信息公开实施方案
2014/05/09 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
欧元符号 €
2022/02/17 杂记
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android