Nested if, for, while, switch, and try statements are key ingredients 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;
}
}
}
}