我在 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;
}
}
答案 0 :(得分:2)
$this->friendRequest
似乎来自数据库。如果您dump_var($this->friendRequest)
,您将能够看到该值是什么。