这个函数
function convert($size) {
$unit = array(
'B',
'KByte',
'MByte',
'GByte',
);
return round($size / pow(1024, ($i = floor(log($size, 1024)))), 2) . ' ' . $unit[$i];
}
这个函数能正常工作,但PHPStorm报错:
第54行存在非法的数组键类型。
这意味着$unit[$i]有问题。
这个函数有什么问题吗?
floor
返回一个浮点数,使用浮点数作为数组键通常是不可取的。请注意,一些其他的函数,比如array_key_exists
,实际上会在运行时产生错误(参考链接),如果你仅基于类型将$i
传递作为键。 - DCoder$i
? - putvande($i = floor(...
- lonesomeday