在php类中声明一个关联数组

时间:2012-03-18 13:09:05

标签: php class properties declaration associative-array

我在 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 变量未定义。我试图通过添加另一个构造函数(如

)来定义assoitive数组
function __construct($this->friendRequest){     
    $this->friendRequest['userId'] = array();        
}

我仍然因未定义 userId 变量而出错。 我还必须声明其他关联数组,但如果我找出 friendRequest ['user_id'] 数组问题,我应该能够解决其他问题。 有人可以帮我解决这个问题吗?

我最初编写此代码而未在我的 Web服务器上处理变量时声明变量。我没有收到任何错误并且它正在完全正常

但是当我决定将我的应用程序带入运行 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 个答案:

答案 0 :(得分:2)

$this->friendRequest似乎来自数据库。如果您dump_var($this->friendRequest),您将能够看到该值是什么。