enum-as-params.phpt 575 B

1234567891011121314151617181920212223242526272829303132333435
  1. --TEST--
  2. Enum types as parameters
  3. --FILE--
  4. <?php
  5. enum Foo {
  6. case Bar;
  7. }
  8. enum Baz {
  9. case Qux;
  10. }
  11. function takesFoo(Foo $foo) {}
  12. function takesBaz(Baz $baz) {}
  13. takesFoo(Foo::Bar);
  14. takesBaz(Baz::Qux);
  15. try {
  16. takesBaz(Foo::Bar);
  17. } catch (Error $e) {
  18. echo $e->getMessage() . "\n";
  19. }
  20. try {
  21. takesFoo(Baz::Qux);
  22. } catch (Error $e) {
  23. echo $e->getMessage() . "\n";
  24. }
  25. ?>
  26. --EXPECTF--
  27. takesBaz(): Argument #1 ($baz) must be of type Baz, Foo given, called in %s on line %d
  28. takesFoo(): Argument #1 ($foo) must be of type Foo, Baz given, called in %s on line %d