我在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)
,您将能够看到该值是什么。