--TEST-- Testing 'self', 'parent' as type-hint --FILE-- testFoo(new foo); $foo->testBar(new bar); $foo->testBaz(new baz); $foo->testFoo(new stdClass); // Recoverable fatal error ?> --EXPECTF-- object(foo)#%d (0) { } object(bar)#%d (0) { } object(baz)#%d (0) { } Fatal error: Uncaught TypeError: Argument 1 passed to foo::testFoo() must be an instance of foo, instance of stdClass given, called in %s on line %d and defined in %s:%d Stack trace: #0 %s(%d): foo->testFoo(Object(stdClass)) #1 {main} thrown in %s on line %d