akanehara/ginq

文字列による配列キー、オブジェクトフィールドのセレクタショートカットの挙動

akanehara opened this issue · 3 comments

文字列による配列キー、オブジェクトフィールドのセレクタショートカットは、要素が配列でもオブジェクトでもない場合に DomainException をスローするが、これは動的型付けのPHPでは使いにくい。たんにキーまたはフィールドが見つからないときと同じく、nullを返すのが適切。

また、セレクタに整数値を設定したときは、それを配列のインデックスとみなしてほしい。

DomainException は残したほうがいいような気がしてきた。

整数キーを使う状況はランダムアクセスを意図している場合が多いと思うので、素直に配列のキーでいい気がしますよ。それが困るなら、->select('array_values')-> でキーを順序どおりの整数にできるし。逆に並びをキーに合わせようと ksort しても、歯抜けがあったり数値じゃないキーが混ざってたりすると、キーと並び位置を対応させられないから。