Annotation of embedaddon/php/ext/spl/tests/spl_autoload_014.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: SPL: spl_autoload_unregister() with closures and invokables
! 3: --FILE--
! 4: <?php
! 5: $closure = function($class) {
! 6: echo "closure called with class $class\n";
! 7: };
! 8:
! 9: class Autoloader {
! 10: private $dir;
! 11: public function __construct($dir) {
! 12: $this->dir = $dir;
! 13: }
! 14: public function __invoke($class) {
! 15: echo ("Autoloader('{$this->dir}') called with $class\n");
! 16: }
! 17: }
! 18:
! 19: class WorkingAutoloader {
! 20: public function __invoke($class) {
! 21: echo ("WorkingAutoloader() called with $class\n");
! 22: eval("class $class { }");
! 23: }
! 24: }
! 25:
! 26: $al1 = new Autoloader('d1');
! 27: $al2 = new WorkingAutoloader('d2');
! 28:
! 29: spl_autoload_register($closure);
! 30: spl_autoload_register($al1);
! 31: spl_autoload_register($al2);
! 32:
! 33: $x = new TestX;
! 34:
! 35: spl_autoload_unregister($closure);
! 36: spl_autoload_unregister($al1);
! 37:
! 38: $y = new TestY;
! 39:
! 40: ?>
! 41: ===DONE===
! 42: --EXPECT--
! 43: closure called with class TestX
! 44: Autoloader('d1') called with TestX
! 45: WorkingAutoloader() called with TestX
! 46: WorkingAutoloader() called with TestY
! 47: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>