Объявление ассоциативного массива внутри класса php - PullRequest
1 голос
/ 18 марта 2012

У меня проблема с объявлением свойства , которое является ассоциативным массивом внутри php класса.

class Friends {

private $db;
public $friendRequest;
public $addedUser;
public $frName;

function __construct(){     
    $this->friendRequest = array();     
    $this->addedUser = array();
    $this->frName = array();
}  
public function friendInfo($getId) {
    $this->db = new DataBase(); 
    $this->friendRequest = $this->db->frFrom($getId);

    foreach ($this->friendRequest['userId'] as $key => $friendId) {

        $this->addedUser = $this->db->frFrom($friendId);

        $this->frName['name'] = $this->addedUser[0]['nickName'] ; 
        $this->frName['id'] = $this->friendRequest['id'][$key] ;
        $this->frName['friendId'] = $this->friendRequest['userId'][$key];

    }   
    return $this->frName;
 }

}

Япоявляется сообщение об ошибке userId переменная undefined .Я попытался определить вспомогательный массив, добавив другой конструктор, такой как

function __construct($this->friendRequest){     
    $this->friendRequest['userId'] = array();        
}

. Я все еще получаю сообщение об ошибке, не определяя переменную userId .Я также должен объявить другие ассоциативные массивы, но если я выясню проблему с массивом friendRequest ['user_id'] , я смогу решить другие.Может ли кто-нибудь помочь мне в этом?

Я изначально написал этот код без объявления переменных, пока работал над ним на своем веб-сервере не получал никаких ошибок , и он работал совершенно нормально .

Но когда я решил это перенести мое приложение на мою локальную машину на котором работает XAMPP сервер, я начал видеть ошибки.Поэтому я понял, что мне нужно удалить все свойства так же, как я объявил:

private $db;

, а затем с помощью $ this -> вызвать свойства, которые в данном случае являются ассоциативными массивами.

исходный код такой же, как здесь, и он не дал мне никакой ошибки , когда я выполнял работу на веб-сервере.

class Friends {

private $db;

public function friendInfo($getId) {
    $this->db = new DataBase();
    $friendRequest = array();   
    $friendRequest = $this->db->frFrom($getId);

    foreach ($friendRequest['userId'] as $key => $friendId) {

        $addedUser = $this->db->frFrom($friendId);

        $frName['name'] = $addedUser[0]['nickName'] ; 
        $frName['id'] = $friendRequest['id'][$key] ;
        $frName['friendId'] = $friendRequest['userId'][$key];

    }

    return $frName;
 }

}

1 Ответ

2 голосов
/ 18 марта 2012

$this->friendRequest, похоже, выходит из базы данных. если вы dump_var($this->friendRequest), вы сможете увидеть, что это за значение.

...