在查看一些代码并尝试修复某些问题时,我提出了一个问题.为什么PHP数组键区分大小写?拥有它似乎是有益的
$array = array(
"Key"=>"Value",
"key"=>"Value",
)
Run Code Online (Sandbox Code Playgroud)
是同一把钥匙.有人可以向我解释将这两个键分开的好处吗?
Chr*_*nus 11
PHP数组使用哈希表实现.哈希表的工作方式,第一个顺序:它哈希输入并使用它作为索引来找到插入对象的正确内存位置.
现在假设您的数组不区分大小写.您现在必须执行2 ^(字符串的长度)哈希查找,而不是执行单个哈希查找.此外,在这些地点中,您选择哪一个?突然间,您的优雅,简单的哈希表在计算和实现方面变得更加复杂.
此外,在大多数其他语言中,Key并被key区别对待.PHP肯定并不总是遵循最小惊喜的原则,但在这种情况下确实如此 - 这应该是它应该如何.
正如其他用户所指出的那样,如果您需要这种行为很容易获得:只需在插入和/或引用它们之前将您的密钥转换为小写.