Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.
On the other hand, constants can be referenced from many places, but only need to be updated in a single place.
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);
execute(MESSAGE);
release(MESSAGE);
}
Exceptions
No issue will be raised on:
- strings with less than 5 characters
- strings with only letters, numbers, underscores, hyphens and periods
$severity = $request->getParam('severity-score');