我正在将相当大的代码库从PHP 5.6升级到PHP 7.2。
代码中有数千个地方,扩展类包含父方法具有不同参数数量的方法。 例如:
class SomeBaseClass {
function someMethod($arg1, $arg2, $arg3) {
...
}
}
class SomeOtherClass extends SomeBaseClass {
function someMethod($arg1) {
//Doesn't care about the other args, so doesn't specify them as params
}
}
这会导致PHP 7.2中出现致命错误。
修复显然是为每个参数添加默认值。
例如:
class SomeOtherClass extends SomeBaseClass {
function someMethod($arg1, $arg2=null, $arg3=null) {
...
}
}
但这要求我知道所有这些都出现在哪里。
我正试图找到一种方法:
OR
我在整个代码库上运行了一个php 7.2 linter,但它似乎没有解决这个问题。我找不到任何可以检测到这一点的工具。
很高兴手动修复它们,我只需要确保我得到它们中的每一个。如果有人知道识别它们的方法,那将会有很大的帮助。