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