Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
class Test {
public function doWhatever(): static {
// Do whatever.
return $this;
}
}@return staticinterface Foo
{
public function setA(int $a): Foo;
public function doSomeStuff();
}
class Bar implements Foo
{
private array $params = [];
private int $a = 0;
public function setA(int $a): Foo
{
$this->a = $a;
return $this;
}
public function setSomeParams(array $params): self
{
$this->params = $params;
return $this;
}
public function doSomeStuff()
{
//...
}
}
(new Bar)
->setA(1)
// Вот тут ИДЕ справедливо видит несовпадение типов
->setSomeParams(['baz' => 1])
->doSomeStuff()
;
:self в качестве возвращаемого типа плох?
PHP-Дайджест № 171 (1 – 13 января 2020)