return_bytes的另一个版本,返回速度更快,不使用多次乘法运算(对不起:)。 即使在编译时解决了这个问题,这也不是一个好做法;
未分配局部变量;
trim()被省略(php在读取php.ini文件时已经修剪了值);
strtollower()被第二个案例所取代,这为我们赢得了一个又一个函数调用,代价是要处理的案例数量增加一倍(在默认情况下,可能会减缓最坏的情况:需要六次比较,而不是三次比较和一次函数调用);
案例按最频繁的优先顺序排序(大写的M值是默认大小);
规范说我们必须处理整数大小,所以浮点值被转换为整数,0.8G变为0;
“Gb”、“Mb”、“Kb”速记字节选项未实现,因为不在规范中,请参阅
http://www.php.net/manual/en/faq.using.php#faq.using.shorthandbytes(网址:http://www.php.net/manual/en/faq.using.php#faq.using.shorthandbytes)
<? php(电话)
功能 返回字节(_B) ( $大小_str )
{
交换机( 子(substr) ( $大小_str , - 1 ))
{
案例 “M” :大小写 “m” :return(int) $大小_str * 1048576 ;
案例 “K” :大小写 “k” :return(int) $大小_str * 1024 ;
案例 “G” :大小写 “g” :return(int) $大小_str * 1073741824 ;
默认值:return $大小_str ;
}
}
?>