exception_017.phpt 889 B

123456789101112131415161718192021222324252627282930313233343536373839
  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 "\nException: " . $e->getMessage() . " in " , $e->getFile() . " on line " . $e->getLine() . "\n";
  14. }
  15. try {
  16. foo("C::foo");
  17. } catch (Error $e) {
  18. echo "\n";
  19. do {
  20. echo "Exception: " . $e->getMessage() . "\n";
  21. $e = $e->getPrevious();
  22. } while ($e instanceof Error);
  23. }
  24. C::foo();
  25. ?>
  26. --EXPECTF--
  27. Exception: Cannot call abstract method C::foo() in %sexception_017.php on line %d
  28. Exception: Argument 1 passed to foo() must be callable, string given, called in %sexception_017.php on line %d
  29. Exception: Cannot call abstract method C::foo()
  30. Fatal error: Uncaught Error: Cannot call abstract method C::foo() in %sexception_017.php:%d
  31. Stack trace:
  32. #0 {main}
  33. thrown in %sexception_017.php on line %d