Since foo() is declared private, calling it with static will lead to errors in possible sub-classes. You can either use self, or increase the visibility of foo() to at least protected.
Let’s assume you have a class which uses late-static binding:
The code above will run fine in your PHP runtime. However, if you now create a
sub-class and call the getSomeVariable() on that sub-class, you will receive
a runtime error:
classYourSubClassextendsYourClass{privatestaticfunctiongetTemperature(){return"-182 °C";}}printYourSubClass::getSomeVariable();// Will cause an access error.
In the case above, it makes sense to update SomeClass to use self instead:
The call to the method testRuleDoesNotApplyToSt...ReferencedMethod::foo() seems un-needed as the method has no side-effects.
PHP Analyzer performs a side-effects analysis of your code. A side-effect is
basically anything that might be visible after the scope of the method is left.
If we look at the getEmail() method, we can see that it has no side-effect.
Whether you call this method or not, no future calls to other methods are affected
by this. As such code as the following is useless:
$user=newUser();$user->getEmail();// This line could safely be removed as it has no effect.
On the hand, if we look at the setEmail(), this method _has_ side-effects.
In the following case, we could not remove the method call:
$user=newUser();$user->setEmail('email@domain');// This line has a side-effect (it changes an// instance variable).
Let’s assume you have a class which uses late-static binding:
}
The code above will run fine in your PHP runtime. However, if you now create a sub-class and call the
getSomeVariable()on that sub-class, you will receive a runtime error:In the case above, it makes sense to update
SomeClassto useselfinstead: