This rule raises an issue when a constant expression is used as a condition in an if, elif, a conditional expression or other boolean expressions.

Why is this an issue?

When a constant is used as a condition, either it has no effect on the execution flow and it can be removed, or some code will never be executed and it is a bug.

How to fix it

Code examples

Noncompliant code example

function foo() {
    if (true) { // Noncompliant: the condition is always true
        return 1;
    } else {
        return 2;
    }
}

Compliant solution

function foo() {
    $a = bar();
    if ($a) {
        return 1;
    } else {
        return 2;
    }
}