php - 非法数组键

标签 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 说

 Illegal array key type on line 54

这意味着 $unit[$i]。

这个函数有什么问题?

最佳答案

floor返回一个 float ,而不是一个整数。 (违反直觉,但却是事实。) float 是 PHP 数组中的非法键。

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

关于php - 非法数组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20019651/

相关文章:

php - 函数中调用的静态变量给出错误未定义的 codeigniter php

PHP MySQL 注入(inject)安全 : Does verifying that $_GET input is numeric provide enough protection?

python - Google App Engine 使用数组将模板变量传递到 View 中

Javascript:尽管数组稀疏,但 indexOf 在高索引上还是很慢?

arrays - 查找字符串数组中字符串的索引

php - 使用 PDO 从数据库中提取值

php - 对现有文件的请求执行 index.php

php - 带有 WAMP 的 Windows 7 上的 PEAR 和 PHPUnit

C# - 我可以使用数组初始值设定项从另一个字节数组构建一个字节数组吗?

c# - 将字符串数组转换为 double 组