There are valid cases for passing a variable multiple times into the same method call, but usually doing so is a mistake, and something else was intended for one of the arguments.

Noncompliant Code Example

if (compare($a+$x, $a+$x) != 0) { // Noncompliant
  //...
}

if (compare(getValue($a), getValue($a)) != 0) { // Noncompliant
  // ...
}

Compliant Solution

if (compare($a+$y, $a+$x) != 0) {
  //...
}

$v1 = getValue($a);
$v2 = getValue($a);
if (compare($v1, $v2) != 0) {
  // ...
}

Deprecated

This rule is deprecated, and will eventually be removed.