As of PHP 7.2 we can finally return type declarations for the object data type. (I know that reads funny, but it’s a true statement!)

Here is an example:

class MyClass {
	public $var = 'Hello World';
}

$myclass = new MyClass;

function getTestType(MyClass $arg) : object {
	return $arg;
}

echo getTestType($myclass)->var;

Previous PHP versions would shit their pants over this with a fatal error:

Fatal error: Uncaught TypeError: Return value of test() must be an instance of object, instance of MyClass returned in app/index.php:10

Now, of course, we get “Hello World!”