- var_dump: documentation ( source)
<?php
interface A {
function m(B $s): self;
}
class B implements A {
function m(self $s): parent {
return $this;
}
}
class C extends B {
function m(parent $s): A {
return $this;
}
}
$c = new C();
$r = $c->m($c);
var_dump($r instanceof C);