3v4l.org

run code in 300+ PHP versions simultaneously
<?php class A { public $name = 'Dog'; } class B extends A { public $clean = true; } class C extends B { public $happy = true; } function doStuff1(A &$classA) { $classA = new B(); } function doStuff2(B &$classB) { $classB = new C(); } $class = new A(); doStuff1($class); doStuff2($class); var_dump($class);
Output for 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
object(C)#1 (3) { ["name"]=> string(3) "Dog" ["clean"]=> bool(true) ["happy"]=> bool(true) }

preferences:
65.29 ms | 984 KiB | 4 Q