bug60573.phpt 746 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. --TEST--
  2. Bug #60573 (type hinting with "self" keyword causes weird errors)
  3. --FILE--
  4. <?php
  5. class Foo1 {
  6. public function setSelf(self $s) { }
  7. }
  8. class Bar1 extends Foo1 {
  9. public function setSelf(parent $s) { }
  10. }
  11. class Foo2 {
  12. public function setSelf(Foo2 $s) { }
  13. }
  14. class Bar2 extends Foo2 {
  15. public function setSelf(parent $s) { }
  16. }
  17. class Base {
  18. }
  19. class Foo3 extends Base{
  20. public function setSelf(parent $s) { }
  21. }
  22. class Bar3 extends Foo3 {
  23. public function setSelf(Base $s) { }
  24. }
  25. class Foo4 {
  26. public function setSelf(self $s) { }
  27. }
  28. class Bar4 extends Foo4 {
  29. public function setSelf(self $s) { }
  30. }
  31. ?>
  32. --EXPECTF--
  33. Fatal error: Declaration of Bar4::setSelf(Bar4 $s) must be compatible with Foo4::setSelf(Foo4 $s) in %s on line %d