method_override_optional_arg_001.phpt 414 B

12345678910111213141516171819202122232425262728293031
  1. --TEST--
  2. Method override allows optional default argument
  3. --FILE--
  4. <?php
  5. class A {
  6. function foo($arg1 = 1) {
  7. }
  8. }
  9. class B extends A {
  10. function foo($arg1 = 2, $arg2 = 3) {
  11. var_dump($arg1);
  12. var_dump($arg2);
  13. }
  14. }
  15. class C extends A {
  16. function foo() {
  17. }
  18. }
  19. $b = new B();
  20. $b->foo(1);
  21. ?>
  22. --EXPECTF--
  23. Warning: Declaration of C::foo() should be compatible with A::foo($arg1 = 1) in %s on line %d
  24. int(1)
  25. int(3)