例えば

$entry = Model_Article::find('all');

のような形でfindすると、結果はいくつかのプロパティを持ったオブジェクトで返ってきますが、 データを利用する際に

foreach($entry as $key => $val){
    echo $val['title'];
}

みたいに、配列として扱えてしまうのはどういう仕組なんでしょうか?