spl_autoload_013.phpt 881 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --TEST--
  2. SPL: spl_autoload_functions() with closures and invokables
  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. ===DONE===
  25. --EXPECTF--
  26. array(3) {
  27. [0]=>
  28. object(Closure)#%d (1) {
  29. ["parameter"]=>
  30. array(1) {
  31. ["$class"]=>
  32. string(10) "<required>"
  33. }
  34. }
  35. [1]=>
  36. object(Autoloader)#%d (1) {
  37. ["dir":"Autoloader":private]=>
  38. string(2) "d1"
  39. }
  40. [2]=>
  41. object(Autoloader)#%d (1) {
  42. ["dir":"Autoloader":private]=>
  43. string(2) "d2"
  44. }
  45. }
  46. ===DONE===