在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 strlen mb_strlen计算中英文混排字符串长度
Jul 10 PHP
解析php类的注册与自动加载
Jul 05 PHP
php导入导出excel实例
Oct 25 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
Jun 26 PHP
php继承中方法重载(覆盖)的应用场合
Feb 09 PHP
php编写的一个E-mail验证类
Mar 25 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
Aug 18 PHP
利用PHPExcel实现Excel文件的写入和读取
Apr 26 PHP
PHP字符串中抽取子串操作实例分析
Jun 22 PHP
yii框架使用分页的方法分析
Jul 25 PHP
解决laravel查询构造器中的别名问题
Oct 17 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 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的开合式多级菜单程序
2006/10/09 PHP
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
深入浅出php socket编程
2015/05/13 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
MSN消息提示类
2006/09/05 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
jquery判断类型是不是number类型的实例代码
2016/10/07 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
[59:07]海涛为你详解DOTA2新版本“贤哲秘契”
2014/11/22 DOTA
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
Python爬取附近餐馆信息代码示例
2017/12/09 Python
服务器端jupyter notebook映射到本地浏览器的操作
2020/04/14 Python
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
营业员个人总结的自我评价
2013/10/25 职场文书
自我评价范文点评
2013/12/04 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
给领导的感谢信范文
2015/01/23 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书
如何用JS实现网页瀑布流布局
2021/04/24 Javascript
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript