1--TEST-- 2Class order allowed with autoloading (2) 3--FILE-- 4<?php 5 6spl_autoload_register(function($class) { 7 if ($class === 'A') { 8 class A { 9 public function method() : B {} 10 } 11 var_dump(new A); 12 } else if ($class == 'B') { 13 class B extends A { 14 public function method() : C {} 15 } 16 var_dump(new B); 17 } else { 18 class C extends B { 19 } 20 var_dump(new C); 21 } 22}); 23 24// Same as autoload1 test case, but with a different autoloading root 25var_dump(new B); 26 27?> 28--EXPECT-- 29object(A)#2 (0) { 30} 31object(C)#2 (0) { 32} 33object(B)#2 (0) { 34} 35object(B)#2 (0) { 36} 37