Восстановление многомерного массива (ООП) - PullRequest
1 голос
/ 29 августа 2010

У меня есть два класса (База данных для запросов над базой данных) и Новости для работы со статьями. На index.php (это может быть любая другая страница) я вызываю класс News, который вызывает класс Database. Все идет хорошо, пока я не должен отобразить результат на index.php.

Допустим, я сохраняю результат в $ news в классе News. Как мне получить этот массив в index.php (например, вернуть $ this-> news или что-то еще ??). А как отобразить?

Может ли кто-нибудь помочь.

Ответы [ 2 ]

1 голос
/ 29 августа 2010
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 ..."
}}
1 голос
/ 29 августа 2010

На index.php (это может быть любая другая страница) я вызываю класс новостей, который вызывает класс базы данных.

Вы не "звоните в классы". Вы вызываете методы классов.

Допустим, я сохранил результат в $ news в классе News.

Полагаю, вы имеете в виду поле (также свойство в PHP) имена 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 (не рекомендуется).

А как отобразить?

Это зависит от структуры данных и способа их отображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...