Nested if, for, while, switch, and try statements is a key ingredient for making
what's known as "Spaghetti code".
Such code is hard to read, refactor and therefore maintain.
With the default threshold of 3:
if (condition1) { // Compliant - depth = 1
...
if (condition2) { // Compliant - depth = 2
...
for($ = 0; $i < 10; $i++) { // Compliant - depth = 3, not exceeding the limit
...
if (condition4) { // Non-Compliant - depth = 4
if (condition5) { // Depth = 5, exceeding the limit, but issues are only reported on depth = 4
...
}
return;
}
}
}
}