Tôi đã thấy một cái gì đó như thế này trong một ORM:Đối tượng hoạt động như một mảng? (PHP)
$b = new Book();
$b->limit(5)->get();
echo 'ID: ' . $b->id . '<br />';
echo 'Name: ' . $b->title . '<br />';
echo 'Description: ' . $b->description . '<br />';
echo 'Year: ' . $b->year . '<br />';
foreach ($b as $book)
{
echo 'ID: ' . $book->id . '<br />';
echo 'Name: ' . $book->title . '<br />';
echo 'Description: ' . $book->description . '<br />';
echo 'Year: ' . $book->year . '<br />';
echo '<br />';
}
Làm thế nào là nó có thể là một đối tượng đóng vai trò như cả hai mảng và đối tượng? Làm thế nào tôi có thể thực hiện điều đó? Tôi đã hy vọng sẽ thấy một phương pháp __magic mới hoặc một cái gì đó trong lớp cha của Book, nhưng tôi không thể tìm thấy bất cứ điều gì, vì vậy có thể có một cái gì đó thực sự cơ bản về các đối tượng php mà tôi không biết.
Mọi suy nghĩ? Cảm ơn trước
Gotta yêu này! :) – balupton
Vâng đó là những gì tôi xin cảm ơn! –
Trên thực tế mọi đối tượng có thể được truy cập với foreach, nhưng nó sẽ truy cập tất cả các thuộc tính công cộng.Bạn cần triển khai 'Iterator' nếu bạn muốn thay đổi hành vi này. Một giao diện khác mà bạn có thể quan tâm là 'ArrayAccess' – Mchl