exception_017.phpt 653 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. --TEST--
  2. Exceptions on improper usage of $this
  3. --FILE--
  4. <?php
  5. abstract class C {
  6. abstract static function foo();
  7. }
  8. function foo(callable $x) {
  9. }
  10. try {
  11. C::foo();
  12. } catch (Error $e) {
  13. echo $e, "\n\n";
  14. }
  15. try {
  16. foo("C::foo");
  17. } catch (Error $e) {
  18. echo $e, "\n\n";
  19. }
  20. C::foo();
  21. ?>
  22. --EXPECTF--
  23. Error: Cannot call abstract method C::foo() in %s:%d
  24. Stack trace:
  25. #0 {main}
  26. TypeError: foo(): Argument #1 ($x) must be of type callable, string given, called in %s:%d
  27. Stack trace:
  28. #0 %s(%d): foo('C::foo')
  29. #1 {main}
  30. Fatal error: Uncaught Error: Cannot call abstract method C::foo() in %s:%d
  31. Stack trace:
  32. #0 {main}
  33. thrown in %s on line %d