abstract_method_9.phpt 534 B

1234567891011121314151617181920212223242526272829
  1. --TEST--
  2. Abstract method in trait using "self" (delayed obligation)
  3. --FILE--
  4. <?php
  5. spl_autoload_register(function($class) {
  6. if ($class == T::class) {
  7. trait T {
  8. abstract private function method($x): self;
  9. }
  10. } else if ($class == C::class) {
  11. class C {
  12. use T;
  13. private function method($x): D {
  14. return new D;
  15. }
  16. }
  17. } else if ($class == D::class) {
  18. class D extends C {}
  19. }
  20. });
  21. new C;
  22. ?>
  23. ===DONE===
  24. --EXPECT--
  25. ===DONE===