在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数组函数序列之in_array() - 查找数组中是否存在指定值
Nov 07 PHP
php列出一个目录下的所有文件的代码
Oct 09 PHP
解析htaccess伪静态的规则
Jun 18 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
两种php去除二维数组的重复项方法
Nov 04 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
Jan 21 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
Oct 16 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
Apr 13 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调用三种数据库的方法(3)
2006/10/09 PHP
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
UCenter 批量添加用户的php代码
2012/07/17 PHP
php中namespace use用法实例分析
2016/01/22 PHP
thinkPHP2.1自定义标签库的导入方法详解
2016/07/20 PHP
javascript跨域刷新实现代码
2011/01/01 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
Sequelize中用group by进行分组聚合查询
2016/12/12 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
jqgrid实现简单的单行编辑功能
2017/09/30 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
详解Django中的form库的使用
2015/07/18 Python
python实现教务管理系统
2018/03/12 Python
python list转矩阵的实例讲解
2018/08/04 Python
python批量创建指定名称的文件夹
2019/03/21 Python
python用什么编辑器进行项目开发
2020/06/17 Python
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
门诊挂号室室长岗位职责
2013/11/27 职场文书
初中语文教学反思
2014/02/02 职场文书
《中华少年》教学反思
2014/02/15 职场文书
经营理念口号
2014/06/21 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
心术观后感
2015/06/11 职场文书
个人更名证明
2015/06/23 职场文书
学校标语口号大全
2015/12/26 职场文书