カウンターの連想配列を構築するコードを書いています。初めて新しいアイテムに遭遇すると、新しいキーを作成し、それをゼロに初期化します。すなわち:
if (!array_key_exists($item, $counters)) {
$counters[$item] = 0;
}
$counters[$item]++;
ただし、PHP は実際にはその最初の部分を暗黙のうちに実行します。私がそうするなら...
$counters[$item]++;
... 次に、$counters[$item] は NULL と評価され、インクリメントされる前に 0 に変換されます。明らかに 2 番目の方法の方が単純で簡潔ですが、$counters[$item] がまだ存在しない可能性があることは明らかではないため、少し安っぽい感じがします。PHPではどちらの方法が優先されますか?
比較のために、Python での慣用的なアプローチは、自分自身を 0 に初期化するキーが必要な場合は collections.Counter を使用し、自分で初期化する場合は通常の辞書を使用することです。PHP では、最初のオプションしかありません。