在PHP模板引擎smarty生成随机数的方法和math函数详解

2015-01-24信息快讯网

如果要在smarty模板中生成随机数,该如何办呢?在php文件中生成然后赋值到模板中。

这个当然绝对是可行的,但过于复杂,下面作者就如何直接在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错误Warning: Cannot modify header information - headers already sent by解决方法
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
php实现的支持imagemagick及gd库两种处理的缩略图生成类
PHP图片库imagemagick安装方法
安装ImageMagick出现error while loading shared libraries的解决方法
PHP邮件发送类PHPMailer用法实例详解
PHP提示Cannot modify header information - headers already sent by解决方法
thinkphp在模型中自动完成session赋值示例代码
使用PHP和HTML5 FormData实现无刷新文件上传教程
如何让thinkphp在模型中自动完成session赋值小教程
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
ThinkPHP查询返回简单字段数组的方法
PHP的preg_match匹配字符串长度问题解决方法
php除数取整示例
PHP模板引擎Smarty的缓存使用总结
php smarty模板引擎的6个小技巧
PHP中使用smarty生成静态文件的例子
smarty模板中使用get、post、request、cookies、session变量的方法
phpmailer中文乱码问题的解决方法
thinkphp实现数组分页示例
php警告Creating default object from empty value 问题的解决方法
ThinkPHP使用UTFWry地址库进行IP定位实例
thinkphp验证码显示不出来的解决方法
easyui的tabs update正确用法分享
ThinkPHP验证码使用简明教程
ThinkPHP分页类使用详解
PHP static局部静态变量和全局静态变量总结
php中的路径问题与set_include_path使用介绍
PHP下获取上个月、下个月、本月的日期(strtotime,date)
preg_match_all使用心得分享
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
PHP函数preg_match_all正则表达式的基本使用详细解析
完美解决PHP中的Cannot modify header information 问题
©2014-2024 dbsqp.com