在查看一些代码并尝试修复一些问题时,我有一个问题。为什么PHP数组键是区分大小写的?似乎有好处的
$array = array(
"Key"=>"Value",
"key"=>"Value",
)
两个键不同的好处是什么?能否有人解释一下?
在查看一些代码并尝试修复一些问题时,我有一个问题。为什么PHP数组键是区分大小写的?似乎有好处的
$array = array(
"Key"=>"Value",
"key"=>"Value",
)
两个键不同的好处是什么?能否有人解释一下?
PHP数组是使用哈希表实现的。哈希表的工作方式,大致上是将输入进行哈希操作,然后使用该哈希值作为索引查找正确的内存位置来插入对象。
现在想象一下你的数组不区分大小写。那么你需要进行2^(字符串长度)次哈希查找才能找到所需位置。而且,在这些位置中,你应该选择哪一个?突然间,你优雅而简单的哈希表变得更加复杂,既在计算上也在实现上。
此外,在大多数其他语言中,“Key”和“key”被视为不同的键,但PHP并非总是遵循最小惊喜原则,但在这种情况下,它确实遵循了——这就是正确的做法。
正如其他用户指出的那样,如果你需要这种行为,这种行为很容易获得:只需在插入和/或引用键之前将它们转换为小写即可。