spl_autoload_013.phpt 860 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. --TEST--
  2. SPL: spl_autoload_functions() with closures and invocables
  3. --FILE--
  4. <?php
  5. $closure = function($class) {
  6. echo "a called\n";
  7. };
  8. class Autoloader {
  9. private $dir;
  10. public function __construct($dir) {
  11. $this->dir = $dir;
  12. }
  13. public function __invoke($class) {
  14. var_dump("{$this->dir}/$class.php");
  15. }
  16. }
  17. $al1 = new Autoloader('d1');
  18. $al2 = new Autoloader('d2');
  19. spl_autoload_register($closure);
  20. spl_autoload_register($al1);
  21. spl_autoload_register($al2);
  22. var_dump(spl_autoload_functions());
  23. ?>
  24. --EXPECTF--
  25. array(3) {
  26. [0]=>
  27. object(Closure)#%d (1) {
  28. ["parameter"]=>
  29. array(1) {
  30. ["$class"]=>
  31. string(10) "<required>"
  32. }
  33. }
  34. [1]=>
  35. object(Autoloader)#%d (1) {
  36. ["dir":"Autoloader":private]=>
  37. string(2) "d1"
  38. }
  39. [2]=>
  40. object(Autoloader)#%d (1) {
  41. ["dir":"Autoloader":private]=>
  42. string(2) "d2"
  43. }
  44. }