<?php
class Foo
{
public $var = 1;
public function dump(self $foo)
{
var_dump($foo);
}
}
$foo = new Foo();
$foo->var = 10;
(new Foo())->dump($foo);
(new Foo())->dump(new stdClass);
object(Foo)#1 (1) {
["var"]=>
int(10)
}
Fatal error: Uncaught TypeError: Foo::dump(): Argument #1 ($foo) must be of type Foo, stdClass given, called in /in/OfhSZ on line 17 and defined in /in/OfhSZ:7
Stack trace:
#0 /in/OfhSZ(17): Foo->dump(Object(stdClass))
#1 {main}
thrown in /in/OfhSZ on line 7
Process exited with code 255.
object(Foo)#1 (1) {
["var"]=>
int(10)
}
Fatal error: Uncaught TypeError: Argument 1 passed to Foo::dump() must be an instance of Foo, instance of stdClass given, called in /in/OfhSZ on line 17 and defined in /in/OfhSZ:7
Stack trace:
#0 /in/OfhSZ(17): Foo->dump(Object(stdClass))
#1 {main}
thrown in /in/OfhSZ on line 7
Process exited with code 255.
Output for 5.5.0 - 5.5.38, 5.6.0 - 5.6.40
object(Foo)#1 (1) {
["var"]=>
int(10)
}
Catchable fatal error: Argument 1 passed to Foo::dump() must be an instance of Foo, instance of stdClass given, called in /in/OfhSZ on line 17 and defined in /in/OfhSZ on line 7
Process exited with code 255.