no-write-properties.phpt 848 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. --TEST--
  2. Enum properties cannot be written to
  3. --FILE--
  4. <?php
  5. enum Foo {
  6. case Bar;
  7. }
  8. enum IntFoo: int {
  9. case Bar = 0;
  10. }
  11. $bar = Foo::Bar;
  12. try {
  13. $bar->name = 'Baz';
  14. } catch (Error $e) {
  15. echo $e->getMessage() . "\n";
  16. }
  17. try {
  18. $bar->value = 1;
  19. } catch (Error $e) {
  20. echo $e->getMessage() . "\n";
  21. }
  22. $intBar = IntFoo::Bar;
  23. try {
  24. $intBar->name = 'Baz';
  25. } catch (Error $e) {
  26. echo $e->getMessage() . "\n";
  27. }
  28. try {
  29. $intBar->value = 1;
  30. } catch (Error $e) {
  31. echo $e->getMessage() . "\n";
  32. }
  33. try {
  34. $intBar->value2 = 1;
  35. } catch (Error $e) {
  36. echo $e->getMessage() . "\n";
  37. }
  38. ?>
  39. --EXPECT--
  40. Cannot modify readonly property Foo::$name
  41. Cannot create dynamic property Foo::$value
  42. Cannot modify readonly property IntFoo::$name
  43. Cannot modify readonly property IntFoo::$value
  44. Cannot create dynamic property IntFoo::$value2