Unused arguments should not be reported for magic methods
PHP magic methods have a method signature check.
While in most cases it wouldn't make sense not to use the declared/passed parameters, most notably with __call() and __callStatic() there can be situations in which not all parameters are used, like when it is known that the methods which will be called will not take arguments.
class Valid_Magic_Methods
{
public function __call($name, $args) {
return $this->$name();
}
public static function __callStatic($name, $args) {
return self::$name();
}
}
Currently this standard will throw a Unused function parameter $name. (VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable) warning in this situation, but the offending parameter can not be removed as otherwise PHP generates a fatal error.
Refs:
- https://www.php.net/manual/en/language.oop5.magic.php
- https://3v4l.org/g55Or
In case you're interested, PHPCSUtils contains some utility methods which could be used to fix this: https://github.com/PHPCSStandards/PHPCSUtils/blob/a9ee9e0afffca398df6f997b44628440aa838d41/PHPCSUtils/Utils/FunctionDeclarations.php#L844-L881
Any fix for this should probably also cover the magic (global) __autoload() function.
Ref: https://www.php.net/manual/en/function.autoload
Oh, great point. Thanks!
Just noting I recently ran into this again. Utils is getting close to the 1.0.0 release, so maybe we should leave it until that's available ?
Oh, thanks. I had forgotten about this issue. I'm stretched pretty thin right now but I'll see if I can write up a quick patch to ignore unused params in these magic methods, but if not we'll just wait for the Utils functions.