<?php
namespace A {
class Foo {
public $foo;
public function __construct() {
$this->foo = function (int $a) {
var_dump("foo");
};
}
}
}
namespace {
$foo = (new A\Foo)->foo;
$foo(null);
echo "Done\n";
}
Fatal error: Uncaught TypeError: A\Foo::A\{closure}(): Argument #1 ($a) must be of type int, null given, called in /in/R2S1C on line 17 and defined in /in/R2S1C:8
Stack trace:
#0 /in/R2S1C(17): A\Foo->A\{closure}(NULL)
#1 {main}
thrown in /in/R2S1C on line 8
Process exited with code 255.
Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
Fatal error: Uncaught TypeError: Argument 1 passed to A\Foo::A\{closure}() must be of the type int, null given, called in /in/R2S1C on line 17 and defined in /in/R2S1C:8
Stack trace:
#0 /in/R2S1C(17): A\Foo->A\{closure}(NULL)
#1 {main}
thrown in /in/R2S1C on line 8
Process exited with code 255.
Fatal error: Uncaught TypeError: Argument 1 passed to A\Foo::A\{closure}() must be of the type integer, null given, called in /in/R2S1C on line 17 and defined in /in/R2S1C:8
Stack trace:
#0 /in/R2S1C(17): A\Foo->A\{closure}(NULL)
#1 {main}
thrown in /in/R2S1C on line 8
Process exited with code 255.
Catchable fatal error: Argument 1 passed to A\Foo::A\{closure}() must be an instance of A\int, null given, called in /in/R2S1C on line 17 and defined in /in/R2S1C on line 8
Process exited with code 255.