假设我有一个这样的课程
class book {
public $title;
public $author;
public $page_num;
.....
....
public function show_book($limit=1){
....
$result = mysql_query("SELECT title,author,page_num FROM book limit=$limit");
while($row = mysql_fetch_array($result))
{
$this->title=$row['title'];
$this->author=$row['author'];
$this->page_num=$row['page_num'];
}
}
然后我可以像:
一样使用它 $book = new book();
$book->show_book();
echo $book->title." ".$book->author ...... ;
这适用于一本书
如果我想要出示7本书怎么办?
这不适用于$book->show_book($limit=7);
我可以制作7个物品,但我认为有更好的方法
答案 0 :(得分:2)
我重命名函数show_books
并让它返回一个book
个对象的数组。如果没有匹配项,则返回空数组,否则返回所有匹配元素。它可能最有意义的是静态方法而不是实例方法。
public static function show_books($limit=1){
....
$result = mysql_query("SELECT title,author,page_num FROM book limit=$limit");
$books = array();
while($row = mysql_fetch_array($result))
{
$book = new book();
$book->title=$row['title'];
$book->author=$row['author'];
$book->page_num=$row['page_num'];
$books[] = $book;
}
return $books;
}
$books = Book::show_books(7);
答案 1 :(得分:1)
课本代表一本书(顾名思义)。
因此,如果将show_books()
方法从此类移动到另一个位置会更好。
现在,您可以修改它以返回找到的书籍数组:在while循环中,您需要为从查询中获得的每条记录创建新的书籍对象。