offsetGet-in-const-expr.phpt 553 B

1234567891011121314151617181920212223242526272829
  1. --TEST--
  2. Enum offsetGet in constant expression
  3. --FILE--
  4. <?php
  5. enum Foo implements ArrayAccess {
  6. case Bar;
  7. public function offsetGet($key): mixed {
  8. return 42;
  9. }
  10. public function offsetExists($key): bool {}
  11. public function offsetSet($key, $value): void {}
  12. public function offsetUnset($key): void {}
  13. }
  14. class X {
  15. const FOO_BAR = Foo::Bar[0];
  16. }
  17. var_dump(X::FOO_BAR);
  18. ?>
  19. --EXPECTF--
  20. Fatal error: Uncaught Error: Cannot use [] on objects in constant expression in %s:%d
  21. Stack trace:
  22. #0 {main}
  23. thrown in %s on line %d