6

いくつかのコードを調べていくつかの問題を修正しようとしているときに、質問に行き着きました。PHP 配列キーで大文字と小文字が区別されるのはなぜですか? あると有利そうです

$array = array(
   "Key"=>"Value",
   "key"=>"Value",
)

同じキーになります。これらの 2 つのキーを分離することの利点を誰かが説明してくれますか?

4

1 に答える 1

12

PHP 配列は、ハッシュ テーブルで実装されます。ハッシュ テーブルのしくみは、まず、入力をハッシュし、それをインデックスとして使用して、オブジェクトを挿入するための適切なメモリ位置を見つけます。

配列が大文字と小文字を区別しないと想像してください。単一のハッシュ ルックアップを行うのではなく、2^(文字列の長さ) のハッシュ ルックアップを行う必要があります。さらに、これらの場所のうち、あなたはどの場所を選びますか? 洗練された単純なハッシュ テーブルが、突然、計算上も実装上もはるかに複雑になりました。

さらに、他のほとんどの言語では、Keykeyの扱いが異なります。PHP は確かに常に最小の驚きの原則に従っているわけではありませんが、この場合はそうです。

他のユーザーが指摘したように、この動作は、必要に応じて簡単に取得できます。キーを挿入および/または参照する前に、キーを小文字に変換するだけです。

于 2013-10-28T22:29:45.193 に答える