<?php
interface Runnable {
public function run(string $details): void;
}
class Impl1 implements Runnable {
public function run(string $details): void {
}
}
class Impl2 implements Runnable {
public function run(string $other): void {
}
}
function getImpl():Runnable{
static $i=0;
if($i===1){
return new Impl2();
}
++$i;
return new Impl1();
}
getImpl()->run(details:"foo");
getImpl()->run(details:"foo");
Fatal error: Uncaught Error: Unknown named parameter $details in /in/KAWdD:28
Stack trace:
#0 {main}
thrown in /in/KAWdD on line 28
Process exited with code 255.
Output for 7.3.0 - 7.3.28, 7.4.0 - 7.4.16
Parse error: syntax error, unexpected ':', expecting ')' in /in/KAWdD on line 27
Process exited with code 255.
Output for 7.2.0 - 7.2.34
Parse error: syntax error, unexpected ':', expecting ',' or ')' in /in/KAWdD on line 27
Process exited with code 255.