一意のオブジェクトのコレクションを管理するコードに取り組んでいます。このコードの最初のプロトタイプは連想配列を利用しています。
しかし、PHP のより新しいバージョンに追加された機能を利用することにも熱心です。たとえば、[SplObjectStorage][1]
代わりにこれを行うことです。これは、一部は学習経験として、一部は利点をもたらすはずだからです (私が見たベンチマークは、それSplObjectStorage
ができることを示唆しています)多くの場合、配列よりも高速です)。
現在の実装には連想配列がありin_array()
、新しいオブジェクトを追加する前に、オブジェクトが配列に既に存在するかどうかを確認します。
私が見ることができる大きな問題SplObjectStorage
は、(一見すると) キー/値の連想配列の動作をサポートしていないように見え、インデックス付き配列としてしか扱えないことです。ただし、PHP の新しい機能に関するドキュメントは、言語のより確立された部分のドキュメントの標準に達していないため、単に何かが欠けている可能性があります。
SplObjectStorage
連想配列の代わりに使用できますか? その場合、新しいオブジェクトを追加するときにキーを定義するにはどうすればよいですか? SplObjectStorage
さらに重要なことは、連想配列と比較した場合の相対的な長所と短所は何ですか?