The error itself is that you have E_STRICT in error_reporting or error_reporting ini directive ...
In principle, this suggests that it is not a good practice to change the "signature" of a function through inheritance. Example:
class ParentClass { public function doFoo() {} } class ChildClass extends ParentClass { public function doFoo($bar) {} }
This will create this error because the parent and child signatures do not match. Now the signature looks like the parser, so:
public function doFoo($bar) {} public function doFoo($baz) {}
Are both suitable signatures. Variable names do not have to be the same, but the number of variables, their order, their type tips and their default values โโmust be the same.
public function doFoo(array $bar, ParentClass $somethign, $biz = 'no') {} public function doFoo(array $baz, ParentClass $parent, $buz = 'no') {}
They also match, but this is not the case:
public function doFoo(array $baz, ParentClass $parent, $buz = 'no') {} public function doFoo(array $baz, ChildClass $parent, $buz = 'no') {}
This is not necessarily โbadโ (wireframes and developers do this all the time). Currently, the language supports this well. The reason for the E_STRICT error is that in the future the language may not support it. Therefore, it โwarns youโ that it might be a bad idea to use your design like this ...