在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的FTP学习(一)[转自奥索]
Oct 09 PHP
PHP isset()与empty()的使用区别详解
Aug 29 PHP
php写的简易聊天室代码
Jun 04 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
Jun 25 PHP
php网站判断用户是否是手机访问的方法
Nov 01 PHP
PHP防盗链代码实例
Aug 27 PHP
PHP列出MySQL中所有数据库的方法
Mar 12 PHP
php转换颜色为其反色的方法
Apr 27 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
PHP翻页跳转功能实现方法
Nov 30 PHP
详细解读php的命名空间(一)
Feb 21 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 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
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
2016/06/17 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
浅谈js中的this问题
2017/08/31 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
python编写的最短路径算法
2015/03/25 Python
python django事务transaction源码分析详解
2017/03/17 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
python跨文件使用全局变量的实现
2020/11/17 Python
python实现视频压缩功能
2020/12/18 Python
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
大学学生会竞选稿
2015/11/19 职场文书
聊一聊python常用的编程模块
2021/05/14 Python
Python first-order-model实现让照片动起来
2022/06/25 Python
设置IIS Express并发数
2022/07/07 Servers