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,硬盘容量计算》