1--TEST-- 2Ensure __autoload() allows for recursive calls if the class name differs. 3--FILE-- 4<?php 5 function __autoload($name) 6 { 7 echo "IN: " . __METHOD__ . "($name)\n"; 8 9 static $i = 0; 10 if ($i++ > 10) { 11 echo "-> Recursion detected - as expected.\n"; 12 return; 13 } 14 15 class_exists('UndefinedClass' . $i); 16 17 echo "OUT: " . __METHOD__ . "($name)\n"; 18 } 19 20 var_dump(class_exists('UndefinedClass0')); 21?> 22--EXPECTF-- 23IN: __autoload(UndefinedClass0) 24IN: __autoload(UndefinedClass1) 25IN: __autoload(UndefinedClass2) 26IN: __autoload(UndefinedClass3) 27IN: __autoload(UndefinedClass4) 28IN: __autoload(UndefinedClass5) 29IN: __autoload(UndefinedClass6) 30IN: __autoload(UndefinedClass7) 31IN: __autoload(UndefinedClass8) 32IN: __autoload(UndefinedClass9) 33IN: __autoload(UndefinedClass10) 34IN: __autoload(UndefinedClass11) 35-> Recursion detected - as expected. 36OUT: __autoload(UndefinedClass10) 37OUT: __autoload(UndefinedClass9) 38OUT: __autoload(UndefinedClass8) 39OUT: __autoload(UndefinedClass7) 40OUT: __autoload(UndefinedClass6) 41OUT: __autoload(UndefinedClass5) 42OUT: __autoload(UndefinedClass4) 43OUT: __autoload(UndefinedClass3) 44OUT: __autoload(UndefinedClass2) 45OUT: __autoload(UndefinedClass1) 46OUT: __autoload(UndefinedClass0) 47bool(false) 48 49