我有一个包含作者和书籍的数据库,m:n authors (a_id, ...) authors_books (a_id, b_id) books (b_id, ...)
我的问题是,我不能使用构造函数将作者/书籍数据获取到数组中,因为我会得到一个无限循环。
class Book
{
public $name;
public $authors;
public function __construct($name)
{
$this->name=$name;
$this->authors=$this->Get_Authors();
}
public function Get_Authors()
{
$authors=array();
/* ... (database) */
$authors[]=new Author($name_from_db);
return $authors;
}
}
class Author
{
public $name;
public $books;
public function __construct($name)
{
$this->name=$name;
$this->books=$this->Get_Books();
}
public function Get_Books()
{
$books=array();
/* ... (database) */
$books[]=new Book($name_from_db);
return $books;
}
}
例子:
new Book('book_1');
-> 将获取 'author_1' 并使用 Author 类的 __constructor
new Author('author_1');
-> 将获取 'book_1 并使用 Book 类的 __constructor ...
解决 PHP 类中 am:n 关系的“最佳实践”是什么?