xref: /PHP-7.1/tests/classes/autoload_018.phpt (revision 113213f0)
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