<?php
class A { public static function get($a) { return "A"; } }
class B extends A { public static function get($a, $b) { return "B"; } }
function CallGetMethod(A $a) {
echo "get() => ", $a::get(123), "\n";
}
CallGetMethod(new B());
Warning: Declaration of B::get($a, $b) should be compatible with A::get($a) in /in/FPEUj on line 4
get() =>
Fatal error: Uncaught ArgumentCountError: Too few arguments to function B::get(), 1 passed in /in/FPEUj on line 7 and exactly 2 expected in /in/FPEUj:4
Stack trace:
#0 /in/FPEUj(7): B::get(123)
#1 /in/FPEUj(10): CallGetMethod(Object(B))
#2 {main}
thrown in /in/FPEUj on line 4
Process exited with code 255.
Output for 7.0.0 - 7.0.20
Warning: Declaration of B::get($a, $b) should be compatible with A::get($a) in /in/FPEUj on line 4
get() =>
Warning: Missing argument 2 for B::get(), called in /in/FPEUj on line 7 and defined in /in/FPEUj on line 4
B
Output for 5.5.0 - 5.5.36, 5.6.0 - 5.6.28
Strict Standards: Declaration of B::get() should be compatible with A::get($a) in /in/FPEUj on line 4
get() =>
Warning: Missing argument 2 for B::get(), called in /in/FPEUj on line 7 and defined in /in/FPEUj on line 4
B