---
title: Avoid reassigning parameters as it's bug prone
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: >-
  Docs > Datadog Security > Code Security > Static Code Analysis (SAST) > SAST
  Rules > Avoid reassigning parameters as it's bug prone
---

# Avoid reassigning parameters as it's bug prone

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com

{% alert level="danger" %}
This product is not supported for your selected [Datadog site](https://docs.datadoghq.com/getting_started/site). ().
{% /alert %}

{% /callout %}

## Metadata{% #metadata %}

**ID:** `php-best-practices/avoid-reassigning-parameters`

**Language:** PHP

**Severity:** Warning

**Category:** Error Prone

## Description{% #description %}

This rule is a simple yet crucial guideline in PHP development. This rule states that once a parameter is passed into a function, its value should not be reassigned within the function. This practice is discouraged because it can lead to confusion and unexpected behavior, increasing the likelihood of bugs in the code.

The importance of this rule lies in its ability to enhance code readability and maintainability. When a parameter is reassigned, it can confuse other developers who may expect the parameter to retain its original value throughout the function. This can make the code more difficult to understand and debug, especially in complex codebases.

To adhere to this rule, developers should create new variables inside the function instead of reassigning the parameters' values. If a function needs to modify a parameter's value, it should do so by returning a new value rather than changing the parameter itself. For example, instead of writing `function sum($a, $b) { $a = 2; return $a + $b; }`, you can write `function sum($a, $b) { $newA = 2; return $newA + $b; }`. This makes the function's behavior more predictable and the code easier to read and maintain.

## Non-Compliant Code Examples{% #non-compliant-code-examples %}

```php
<?php
function sum($a, $b) {
    $a = 2;
    return $a + $b
}
```

## Compliant Code Examples{% #compliant-code-examples %}

```php
<?php
function sum($a, $b) {
    return $a + $b
}
```
  Seamless integrations. Try Datadog Code SecurityDatadog Code Security 
{% icon name="icon-external-link" /%}
 