<?php
namespace clases;
abstract class MyParent{ abstract function name(); }
class Foo extends MyParent{ function name(){ return "Foo class"; } }
class Bar extends MyParent{ function name(){ return "Bar class"; } }
function doSomething(\clases\MyParent $object){ echo 'Good';}
$object2 = new \stdClass();
doSomething($object2);
Fatal error: Uncaught TypeError: clases\doSomething(): Argument #1 ($object) must be of type clases\MyParent, stdClass given, called in /in/DX3ki on line 15 and defined in /in/DX3ki:9
Stack trace:
#0 /in/DX3ki(15): clases\doSomething(Object(stdClass))
#1 {main}
thrown in /in/DX3ki on line 9
Process exited with code 255.
Fatal error: Uncaught TypeError: Argument 1 passed to clases\doSomething() must be an instance of clases\MyParent, instance of stdClass given, called in /in/DX3ki on line 15 and defined in /in/DX3ki:9
Stack trace:
#0 /in/DX3ki(15): clases\doSomething(Object(stdClass))
#1 {main}
thrown in /in/DX3ki on line 9
Process exited with code 255.
Catchable fatal error: Argument 1 passed to clases\doSomething() must be an instance of clases\MyParent, instance of stdClass given, called in /in/DX3ki on line 15 and defined in /in/DX3ki on line 9
Process exited with code 255.