While it is technically correct to assign to parameters from within function bodies, doing so before the parameter value is read is likely a bug. Instead, initial values of parameters should be, if not treated as read-only, then at least read before reassignment.

Noncompliant Code Example

function foo($str, $array) {
  $str = "name; // Noncompliant

  foreach ($array as $item) {
    $item = "hello world";  // Noncompliant
  }
}