在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输出控制功能在简繁体转换中的应用
Oct 09 PHP
模拟OICQ的实现思路和核心程序(二)
Oct 09 PHP
PHP 出现乱码和Sessions验证问题的解决方法!
Dec 06 PHP
php array_intersect()函数使用代码
Jan 14 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
Oct 29 PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 PHP
php 截取GBK文档某个位置开始的n个字符方法
Mar 08 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
在 Laravel 6 中缓存数据库查询结果的方法
Dec 11 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对字符串的递增运算分析
2010/08/08 PHP
PHP数组交集的优化代码分析
2011/03/06 PHP
phpcms手机内容页面添加上一篇和下一篇
2015/06/05 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
django js 实现表格动态标序号的实例代码
2019/07/12 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
python三元运算符实现方法
2013/12/17 Python
详解python时间模块中的datetime模块
2016/01/13 Python
获取Django项目的全部url方法详解
2017/10/26 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
python3.5绘制随机漫步图
2018/08/27 Python
更改Python的pip install 默认安装依赖路径方法详解
2018/10/27 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
Python 函数返回值的示例代码
2019/03/11 Python
python的列表List求均值和中位数实例
2020/03/03 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
如何删除一个表里面的重复行
2013/07/13 面试题
全神贯注教学反思
2014/02/03 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
班主任自我评价范文
2015/03/11 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
Python实现双向链表基本操作
2022/05/25 Python
Linux磁盘管理方法介绍
2022/06/01 Servers