<?php
namespace A {
class Foo {
public $foo;
public function __construct() {
$this->foo = function (integer $a) {
var_dump("foo");
};
}
}
}
namespace {
$foo = (new A\Foo)->foo;
$foo(null);
echo "Done\n";
}
Warning: "integer" will be interpreted as a class name. Did you mean "int"? Write "\A\integer" or import the class with "use" to suppress this warning in /in/hEXqK on line 8
Fatal error: Uncaught TypeError: A\Foo::A\{closure}(): Argument #1 ($a) must be of type A\integer, null given, called in /in/hEXqK on line 17 and defined in /in/hEXqK:8
Stack trace:
#0 /in/hEXqK(17): A\Foo->A\{closure}(NULL)
#1 {main}
thrown in /in/hEXqK on line 8
Process exited with code 255.
Fatal error: Uncaught TypeError: Argument 1 passed to A\Foo::A\{closure}() must be an instance of A\integer, null given, called in /in/hEXqK on line 17 and defined in /in/hEXqK:8
Stack trace:
#0 /in/hEXqK(17): A\Foo->A\{closure}(NULL)
#1 {main}
thrown in /in/hEXqK 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\integer, null given, called in /in/hEXqK on line 17 and defined in /in/hEXqK on line 8
Process exited with code 255.