多维数组恢复(OOP)

时间:2010-08-28 23:28:44

标签: php arrays multidimensional-array

我有两个类(用于查询数据库的数据库)和用于操作文章的新闻。在index.php(可以是任何其他页面)上,我调用News类,它调用Database类。一切顺利,直到我必须在index.php上显示结果。

让我们说,我将结果保存在News类中的$ news中。 我应该如何在index.php中检索该数组(如返回$ this-> news或其他内容??)。以及如何显示?

有人可以提供帮助。

2 个答案:

答案 0 :(得分:1)

  

在index.php(可以是任何其他页面)上,我调用News类,它调用Database类。

你没有“打电话给班级”。你可以调用类的方法。

  

让我们说,我将结果保存在新闻类中的$ news。

我想你的意思是你有一个字段(在PHP中也是 property )名称news,如:

class News {
    private $news;
    /* ... */
}
  

我应该如何在index.php中检索该数组(如返回$ this-> news或其他内容?)

您可以在News中添加一个返回此数组的方法:

class News {
    private $news;
    function retrieveNews() {
        /* query the DB and store the result in $this->news */
    }
    function getData() { return $this->news; }
}

或者您可以将其公开并通过$newsObject->news直接访问(不推荐)。

  

如何展示?

这取决于数据的结构以及您希望如何显示它。

答案 1 :(得分:1)

class Database{               // database.php
function news($user_id){ 
$q="select all from news where author id='$id'"; 
$result=$db->query($q); 
for($i=0; $i<$r->num_rows; $i++){   
    $arr[]=$result->fetch_array;  
} 
return $arr; }}

class News{              //  news.php
function get_news($user_id){
$news=$db->news($user_id);
return $news;
}}

index.php  // problem how to display
$post=new News;
$post->get_news($user_id);
for($i=0; $i<5; $i++){
    foreach($post[$i] as $k=>$v){
       echo $v;         //get error: "Cannot use object of type News as array in ..."
}}