Интересно, можем ли мы объединить «внутренне» внутри самого класса? Например, у меня есть эти два класса,Как связать внутри внутри класса?
Первый класс,
class Object1
{
public $item;
public $obj2;
public function __construct()
{
$this->obj2 = new Object2();
}
public function chain1()
{
$this->item = 'Chain1 ';
return $this;
}
public function chain2()
{
//$this->item = $this->obj2->chain3(); // works ok.
$this->item = $this->obj2->chain3()->chain1(); // how to chain yourself?
return $this;
}
}
второй класс,
class Object2
{
public $item;
public function chain3()
{
$this->item = 'Chain 3 ';
return $this;
}
public function chain4()
{
$this->item = 'Chain4 ';
return $this;
}
}
$obj1 = new Object1();
print_r($obj1->chain2()->item);
ошибка,
atal error: Call to undefined method Object2::chain1() in C:...
Мне нужно цепи chain1()
в классе Ojbect1()
.
$this->item = $this->obj2->chain3()->chain1();
Возможно ли это?
Нет, это не возможно, и при этом это не имеет смысла. Что бы вы выиграли? Пожалуйста, не говорите мне, что «в редакторе было бы круче». – Jon
chain3() возвращает объект Object2; так как вы можете ожидать, что затем вызовите метод в классе Object1? –