<?php
class Foo
{
public $var = 1;
public function dump(self $foo)
{
var_dump($foo);
}
}
$foo = new Foo();
$foo->var = 10;
$foo2 = new Foo();
$foo2->dump($foo);
$foo2->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/VKvLZ on line 18 and defined in /in/VKvLZ:7
Stack trace:
#0 /in/VKvLZ(18): Foo->dump(Object(stdClass))
#1 {main}
thrown in /in/VKvLZ 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/VKvLZ on line 18 and defined in /in/VKvLZ:7
Stack trace:
#0 /in/VKvLZ(18): Foo->dump(Object(stdClass))
#1 {main}
thrown in /in/VKvLZ on line 7
Process exited with code 255.
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
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/VKvLZ on line 18 and defined in /in/VKvLZ on line 7
Process exited with code 255.