## Why is this an issue?

Duplicated string literals make the process of refactoring complex and error-prone, as any change would need to be propagated on all occurrences.

### Exceptions

No issue will be raised on:

- strings with less than 5 characters
- strings with only letters, numbers, underscores, hyphens and periods

## How to fix it

Use constants to replace the duplicated string literals. Constants can be referenced from many places, but only need to be updated in a single place.

### Code examples

#### Noncompliant code example

With the default threshold of 3:

    function run() {
      prepare('this is a duplicate'); // Noncompliant - 'this is a duplicate' is duplicated 3 times
      execute('this is a duplicate');
      release('this is a duplicate');
    }

#### Compliant solution

    MESSAGE = 'this is a duplicate';

    function run() {
      prepare(MESSAGE); // Compliant - the duplicated string literal is replaced by a constant and can be safely re-used
      execute(MESSAGE);
      release(MESSAGE);
    }

    $severity = $request->getParam('severity-score');