14. 左のコードは右のコードと等価
class A
{
public function getMe(): A
{
return $this;
}
}
class B extends A {}
$b = new B();
$b->getMe(); // B
class A
{
public function getMe(): self
{
return $this;
}
}
class B extends A {}
$b = new B();
$b->getMe(); // B
24. 余談:メソッドの引数でも使える
class A
{
public function setMe(self $self)
{
$this->self = $self;
}
}
class B extends A
{
public function setMe(parent $self)
{
$this->self = $self;
}
}