非法数组键

时间:2013-11-16 14:37:30

标签: php arrays

此功能

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]。

这个功能出了什么问题?

1 个答案:

答案 0 :(得分:4)

floor返回一个浮点数,而不是一个整数。 (反直觉,但确实如此。)浮点数是PHP数组中的非法键。

代码工作正常,因为floats are implicitly cast to integers when used as keys in an array,但我想这就是你在PHPStorm中收到通知的原因。