bug60217c.phpt 533 B

12345678910111213141516171819202122232425
  1. --TEST--
  2. Bug #60217 (Requiring the same method from different traits and abstract methods have to be compatible, in both directions.)
  3. --FILE--
  4. <?php
  5. trait TBroken1 {
  6. public abstract function foo($a, $b = 0);
  7. }
  8. trait TBroken2 {
  9. public abstract function foo($a);
  10. }
  11. class CBroken {
  12. use TBroken1, TBroken2;
  13. public function foo($a) {
  14. echo 'FOO';
  15. }
  16. }
  17. $o = new CBroken;
  18. $o->foo(1);
  19. --EXPECTF--
  20. Fatal error: Declaration of TBroken2::foo($a) must be compatible with TBroken1::foo($a, $b = 0) in %s on line %d