我有三个类 MainClass、Member 和 Project。Member 和 Project 扩展了 MainClass。
首先我创建一个 MainClass 对象,然后创建一个 Member 对象并执行函数 setMember:
$mainclass = new MainClass();
$member = new Member($id);
$mainclass->setMember($member);
当 $member 变量设置为当前成员时,我想在我的 Project 类中使用这个变量,但我无法让它工作:s
我需要会员的身份证,所以理论上有两种可能性:
mysql_query("INSERT INTO projects (title, user_id) VALUES('$title', ".$this->member->id.")");
或者
mysql_query("INSERT INTO projects (title, user_id) VALUES('$title', ".$this->member->getId().")");
第一个,$this->member->id,结果为 NULL
第二个,$this->member->getId(),给了我这个错误:
在...中的非对象上调用成员函数 getId()
这是我的课(我把大部分课都去掉了)
class MainClass{
public $member = NULL;
public function __construct(){}
public function setMember($member)
{
$this->member = $member;
}
public function getMember()
{
return $this->member;
}
}
class Project extends MainClass{
public $id;
public function __construct($id=NULL){
$this->setId($id);
}
public function setId($id){
$this->id = $id;
}
public function getId(){
return $this->id;
}
public function addProject($title){
mysql_query("INSERT INTO projects (title, user_id) VALUES('$title', ".$this->member->getId().")");
}
}
class Member extends MainClass{
public $id;
public function __construct($id=NULL){
$this->setId($id);
}
public function setId($id){
$this->id = $id;
}
public function getId(){
return $this->id;
}
}