I am running the PHPStorm debugger with php 7.1.30 and when I run this code:
    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;
    }
if condition_1 is false, control immediately passes to the else case, and the elseif tests are not applied.
If I replace the elseif with else if, everything works as expected.
 
    