no-implement-serializable-indirect.phpt 685 B

1234567891011121314151617181920212223242526
  1. --TEST--
  2. Enum must not implement Serializable indirectly
  3. --FILE--
  4. <?php
  5. interface MySerializable extends Serializable {}
  6. enum Foo implements MySerializable {
  7. case Bar;
  8. public function serialize() {
  9. return serialize('Hello');
  10. }
  11. public function unserialize($data) {
  12. return unserialize($data);
  13. }
  14. }
  15. var_dump(unserialize(serialize(Foo::Bar)));
  16. ?>
  17. --EXPECTF--
  18. Deprecated: %s implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in %s on line %d
  19. Fatal error: Enums may not implement the Serializable interface in %s on line %d