最近の PHP の更新では、ArrayAccess、Iterator、Countable など、オブジェクトを配列として扱えるようにするさまざまなインターフェイスが追加されました。
私の質問は、次のことが機能することは理にかなっているでしょうか。
function useArray(array $array)
{
print_r($array);
}
useArray(new ArrayObj(array(1,2,3,4,5));
$array
現時点では、技術的には配列ではないため、PHP は型ヒント エラーをスローします。ただし、基本的に配列と同じにするすべてのインターフェイスを実装しています。
echo $array[0]; // 1
$array[0] = 2;
echo $array[0]; // 2
論理的には、オブジェクトは配列と同じインターフェイスを実装しているため、配列を使用できる場所ならどこでも使用できるはずです。
私の論理は混乱していますか、それともオブジェクトが配列と同じインターフェイスを実装している場合、それはすべて同じ場所で使用できるべきであるということは理にかなっていますか?