• 展开微博窗口
  • QQ:365182575
  • 微信:cighsen
  • 展开分类目录
Nearnet

switch高级用法,不加break,硬盘容量计算

实战】 根据上面的知识点,编写这么一个函数:计算容量值实际代表的字节数

<?php
/**
 * 返回字节数
 *
 * @param string $val 如 400M
 */
function return_bytes($val = '') {
    $val = trim($val);
    $last = strtolower($val{strlen($val)-1});
    switch ($last) {
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }
 
    return $val;
}
 
$memorylimit = ini_get('memory_limit');
echo $memorylimit, '<br/>';
echo return_bytes($memorylimit);

特别说明:$val = 400M时,case 'm' 被命中,其下的 $val *= 1024; 被执行,但因为没有 break 语言,所以会继续命中 case 'k',并执行其下的 $val *= 1024;语句,so,总体上相当于执行了 400 * 1024 * 1024 。

码字很辛苦,转载请注明来自NAERENET《switch高级用法,不加break,硬盘容量计算》