为了账号安全,请及时绑定邮箱和手机立即绑定

大神们 求解释!!!!

function getsize($size, $format = 'kb'){ 

  $p = 0;  

 if($format == 'kb'){      

 $p = 1;  

 }elseif($format = 'mb'){      

 $p = 2;  

 }elseif($format = 'gb'){       

$p = 3;  

 }   

$size /= pow(1024, $p);  

 return number_format($size,3); } 函数中的 number_format(); 怎么理解?

正在回答

5 回答

这个函数的参数可以是1个,2个或者4个(注意没有3个的情况):

number_format($number,   [, int $decimals = 0  ]);第一个参数是你要格式化的数字,第二个参数是可选参数,是表示保留的小数点个数,如果不写第二个参数,这默认保留0位小数,也就是没有小数位的意思。

number_format($number, $decimals = 0 , $dec_point = "." , $thousands_dec = ",");这是4个参数的情况,

第一,第二个参数同上,第三个参数表示小数点显示的字符,第四个就是千位分隔符。下面结合例子去理解:

<?php

$number = 1234.56;

// english notation (default)
$english_format_number = number_format($number);
// 1,235

// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// english notation without thousands separator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

想了解更多上php官网:http://php.net/manual/zh/function.number-format.php

没有网也可以下载与你php对应版本的php手册

4 回复 有任何疑惑可以回复我~
#1

台农一号 提问者

谢谢大神 终于理解了!!!!!!
2016-10-23 回复 有任何疑惑可以回复我~
#2

台农一号 提问者

非常感谢!
2016-10-23 回复 有任何疑惑可以回复我~
#3

一亩地 回复 台农一号 提问者

不客气,O(∩_∩)O哈哈~
2016-10-23 回复 有任何疑惑可以回复我~

<?php
$filename = '/data/webroot/usercode/resource/test.txt';
//取得文件的大小并输出
function getsize($size, $format='kb'){   //getsize()函数,初始化format='kb',也可以为其他也可以为空format='';
    $p = 0;
    if($format == 'kb'){
        $p = 1;
    }elseif($format == 'mb'){
        $p = 2;
    }elseif($format == 'gb'){
        $p = 3;
    }
    $size /= pow(1024, $p);                 //pow(x,y)  表示x的y次方;
    return number_format($size,3);           // number_format() 以千位分隔符方式格式化一个数字;后面的3代表保留三位小数点;
}
$size = filesize($filename);                
echo $size.'字节<br/>';                    //源文件字节数;

$size = getsize($size,'kb');                  //源文件单位由字节转换为kb;
echo $size.'kb<br/>';

$size = getsize($size,'mb');                //源文件单位由字节转换为mb; 不显示字节的原因是因为number_format()只保留了小数点3位;如果要显示出来,改变getsize()函数里number_format()的参数为更大比如9
echo $size.'mb<br/>';

$size = getsize($size,'gb');                //源文件单位由字节转换为gb; 不显示字节的原因是因为number_format()只保留了小数点3位;
echo $size.'gb<br/>';



帮我分析一下这个程序,谢谢

0 回复 有任何疑惑可以回复我~
#1

一亩地

这就是一个简单的字节间的单位转换, 1kb = 1024b; 1mb = 1024kb; 1gb = 1024mb;
2016-10-22 回复 有任何疑惑可以回复我~
#2

台农一号 提问者 回复 一亩地

return number_format($size,3); // number_format() 以千位分隔符方式格式化一个数字;后面的3代表保留三位 我这一句看不懂,可以帮我详细的解释下吗?最好能举个通俗易懂的例子最好了
2016-10-22 回复 有任何疑惑可以回复我~

比如1,000

0 回复 有任何疑惑可以回复我~

number_format — 以千位分隔符方式格式化一个数字   这句话又是什么意思?

0 回复 有任何疑惑可以回复我~

(PHP 4, PHP 5, PHP 7)

number_format — 以千位分隔符方式格式化一个数字


1 回复 有任何疑惑可以回复我~
#1

台农一号 提问者

能举个详细的例子吗?
2016-10-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP进阶篇
  • 参与学习       181843    人
  • 解答问题       2577    个

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

进入课程

大神们 求解释!!!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信