<?php
interface A {
public function foo(...$args) : self;
}
class B implements A {
public function foo(...$args) : self
{
foreach ($args as $arg) {
echo $arg."\n";
}
}
}
$x = new B;
$x->foo(1, 2, 3);
1
2
3
Fatal error: Uncaught TypeError: B::foo(): Return value must be of type B, none returned in /in/XbtXf:14
Stack trace:
#0 /in/XbtXf(18): B->foo(1, 2, 3)
#1 {main}
thrown in /in/XbtXf on line 14
Process exited with code 255.
Output for 7.4.0 - 7.4.33
1
2
3
Fatal error: Uncaught TypeError: Return value of B::foo() must be an instance of B, none returned in /in/XbtXf:14
Stack trace:
#0 /in/XbtXf(18): B->foo(1, 2, 3)
#1 {main}
thrown in /in/XbtXf on line 14
Process exited with code 255.