method_override_optional_arg_001.phpt 531 B

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