我使用的是一个框架,它的方法定义了如下
class Abc {
public function doThis($what) {
...
}
}由于我使用的是PHP 7,同时也是PHP代码的粉丝,它告诉我要定义函数参数类型,也就是说我已经在代码中编写了类:-
class Pqr extends Abc {
public function doThis(string $what) {
...
}
}这段代码给了我警告声明:Pqr::doThis(字符串$what)应该与Abc::doThis($what)兼容。
似乎PHP在Abc类中对$what的处理方式有所不同(而不是字符串)。因为Abc是框架的一部分,我对此无能为力。我不想删除代码中的参数类型,并且希望保持cngode更严格。禁用所有警告将是个坏主意。
我们有什么更好的办法来解决这个问题吗?
发布于 2018-11-12 15:26:05
代码嗅探器很可能告诉您做一些事情,您可能希望遵循它的建议,但如果您的框架没有这样做,那么您也可能无法做到这一点。您不能将代码规则分解到框架中;您必须接受它强加给您的东西,即使这违背了code的规则。
我的建议是忽略这个问题。代码嗅探器是一个很好的工具,它的建议是值得遵循的,但有时您根本无法这样做。
如果您的目标是让您的系统显示零代码嗅探器警告,那么您可以通过在代码中显式添加标记来使代码嗅探器忽略代码中不同点的特定规则。代码嗅探器能够忽略代码的部分;这在它的高级使用文档页面中有描述。
https://stackoverflow.com/questions/53265046
复制相似问题