bug66811.phpt 573 B

12345678910111213141516171819202122232425262728293031323334353637
  1. --TEST--
  2. Bug #66811: Cannot access static::class in lambda, written outside of a class
  3. --FILE--
  4. <?php
  5. class A {
  6. public static function f() {
  7. return function () {
  8. var_dump(self::class);
  9. var_dump(static::class);
  10. };
  11. }
  12. }
  13. class B extends A {}
  14. $f = B::f();
  15. $f();
  16. $g = $f->bindTo(null, A::class);
  17. $g();
  18. $foo = function () {
  19. var_dump(self::class);
  20. var_dump(static::class);
  21. };
  22. $bar = $foo->bindTo(null, A::class);
  23. $bar();
  24. ?>
  25. --EXPECT--
  26. string(1) "A"
  27. string(1) "B"
  28. string(1) "A"
  29. string(1) "A"
  30. string(1) "A"
  31. string(1) "A"