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===DONE=== 29--EXPECT-- 30object(A)#2 (0) { 31} 32object(C)#2 (0) { 33} 34object(B)#2 (0) { 35} 36object(B)#2 (0) { 37} 38===DONE=== 39