Я запускаю отладчик PHPStorm с php 7.1.30, и когда я запускаю этот код:
if (condition_1){
do something;
}
elseif (condition_2) {
do something different;
}
elseif (condition_3) {
do something more different;
}
else {
do something if all else has failed;
}
, если условие_1 ложно, управление немедленно переходит к случаю else, и тесты elseif не применяется.
Если я заменю elseif на else if, все будет работать как положено.