Sonarlint似乎认为未使用在类内(通过类名,而不是通过self
访问的私有静态属性)。我不太清楚为什么会这样:可能是因为它被认为是通过名称而不是通过self
甚至是static
来访问当前类的代码中的错误,但是我希望成为错误,因为这意味着您可以安全地删除该属性,实际情况并非如此。当然,这可能是声纳的错误(误报)
我已经写了这个例子:
class TestClass
{
private static $used = 'foobar';
public static function echoUsed()
{
echo TestClass::$used;
}
}
TestClass::echoUsed();
这可以正常运行,但确实会在下面产生“ php s1068”警告。我添加了弹出窗口和完整错误的图片。
有人知道这是否是如上所述的目的或错误吗?
错误:
“更多”链接显示了完整的错误:
如果声明了private
字段但未在程序中使用它,则可以将其视为无效代码,因此应将其删除。这将
提高开发人员的可维护性,因为开发人员不会怀疑该变量的用途。
class MyClass { private $foo = 4; //foo is unused public function compute($a) { return $a * 4; } }
class MyClass { public function compute($a) { return $a * 4; } }