This rule checks for improper null guard conditions in PHP code. A null guard is a conditional statement that checks if a variable is null before proceeding with an operation. This is important to prevent null pointer dereferences, which occur when the program tries to access a memory location through a null pointer. Null pointer dereferences can lead to unexpected behaviors and crashes in your application.
In non-compliant code, the logical AND (&&) and OR (||) operators are used incorrectly in null guard conditions. This can lead to situations where a method is called on a null object, causing a null pointer dereference.
To avoid violating this rule, always use the correct logical operator in your null guard conditions. If you want to ensure that a method is only called when a variable is not null, use the AND operator (&&). If you want to ensure that a method is called when a variable is null or the method returns true, use the OR operator (||). This way, you can prevent null pointer dereferences and improve the robustness of your code.
Non-Compliant Code Examples
<?phpif($var==null&&$var->method()){echo"method is true";}if($var!=null||$var->method()){echo"method is true";}
Compliant Code Examples
<?phpif($var==null||$var->method()){echo"method is true";}if($var!=null&&$var->method()){echo"method is true";}
Seamless integrations. Try Datadog Code Analysis
Datadog Code Analysis
Try this rule and analyze your code with Datadog Code Analysis
How to use this rule
1
2
rulesets:- php-code-style # Rules to enforce PHP code style.
Create a static-analysis.datadog.yml with the content above at the root of your repository
Use our free IDE Plugins or add Code Analysis scans to your CI pipelines