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


Declaring an associative array inside a php class

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

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

我仍然收到一个错误,因为我没有定义userId变量。我还必须声明其他关联数组,但如果我解决了friendRequest['user_id']数组问题,我应该能够修复其他数组。有人能帮我吗?

当我在web服务器上处理这段代码时,我最初是在没有声明变量的情况下编写这段代码的。我没有得到任何错误,它运行得很好。

但是,当我决定将我的应用程序带到运行XAMPP服务器的本地机器中时,我开始看到错误。因此,我意识到我必须标记属性,就像我声明一样

private $db;

然后使用$this->调用属性,在本例中它们是关联数组。

原始代码如下,当我在webserver上运行时,它没有给我任何错误

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;
 }
}

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