language011.phpt 543 B

123456789101112131415161718192021222324252627282930
  1. --TEST--
  2. Aliasing on conflicting method should not cover up conflict.
  3. --FILE--
  4. <?php
  5. error_reporting(E_ALL);
  6. trait Hello {
  7. public function sayHello() {
  8. echo 'Hello';
  9. }
  10. }
  11. trait World {
  12. public function sayHello() {
  13. echo ' World!';
  14. }
  15. }
  16. class MyClass {
  17. use Hello, World { World::sayHello as sayWorld; }
  18. }
  19. $o = new MyClass();
  20. $o->sayHello();
  21. $o->sayWorld();
  22. ?>
  23. --EXPECTF--
  24. Fatal error: Trait method World::sayHello has not been applied as MyClass::sayHello, because of collision with Hello::sayHello in %s on line %d