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
}
}