在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获取类中常量,属性,及方法列表的方法
Apr 09 PHP
Smarty foreach控制循环次数的实现详解
Jul 03 PHP
php类声明和php类使用方法示例分享
Mar 29 PHP
实现PHP+Mysql无限分类的方法汇总
Mar 02 PHP
php从数组中随机选择若干不重复元素的方法
Mar 14 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
PHP读取mssql json数据中文乱码的解决办法
Apr 11 PHP
php微信开发之自定义菜单完整流程
Oct 08 PHP
php实现文件上传及头像预览功能
Jan 15 PHP
使用PHP+MySql实现微信投票功能实例代码
Sep 29 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 PHP
对laravel in 查询的使用方法详解
Oct 09 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简单实现无限级分类的方法
2016/05/13 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
PHP基于DOM创建xml文档的方法示例
2017/02/08 PHP
php中Redis的应用--消息传递
2017/03/28 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
List Installed Software Features
2007/06/11 Javascript
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
JavaScript变量基本使用方法实例分析
2019/11/15 Javascript
Vant 在vue-cli 4.x中按需加载操作
2020/11/05 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
实习医生自我评价
2013/09/22 职场文书
怎样写好创业计划书的内容
2014/02/06 职场文书
岗位职责风险防控
2014/02/18 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
医德医风自我评价2015
2015/03/03 职场文书
职场领导同事生日简短祝福语
2019/08/06 职场文书
Python中的socket网络模块介绍
2022/07/23 Python