У меня есть три класса MainClass, Member и Project. Участник и проект расширяют MainClass.Использование родительских переменных в расширяющемся классе
Сначала я создаю MainClass объект, то объект-членов и выполнять функцию setMember:
$mainclass = new MainClass();
$member = new Member($id);
$mainclass->setMember($member);
Когда переменный $ члена устанавливаются в настоящее время члена я хочу использовать этот переменный в моем классе проекта, но Я не могу заставить его работать: 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-> как принадлежность> идентификатор, результаты NULL
Второй, $ this-> как принадлежность> GetId(), дает мне эту ошибку:
Call to a member function getId() on a non-object in ....
Вот мои классы (я раздел большинство из них Offcourse)
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;
}
}
У вас есть опечатки в первом наборе кода, который вы вставили - Mainlass(); и setMember ($ member) - должно быть $ Member. – jimyi
только что скорректировал их спасибо – Bundy
Что делает print_r ($ mainClass), показывая вам сразу после вызова setMember ($ member)? – AndyMcKenna