Elseif statement failing to execute its assigment


<?php 
$tac = isset($_GET['subt'])  && is_numeric($_GET['subt'])?$_GET['subt']:null;
$drop = isset($_GET['menu'])  && is_numeric($_GET['menu'])?$_GET['menu']:null;
?>
<?php 
if(($drop != '') && ($tac == 1) || ($drop != '') && ($tac == 2)){
// this is displaying ok.
}
elseif(($drop != '') && ($tac == 3)) {
// this script is displaying ok.
}

  elseif(($tac == 1 ) || ($tac == 2) || ($tac == 3) || ($tac == 5)){

// this is displaying ok as well.
}

elseif($tac == 4){ 
// displaying ok.
}

elseif (($drop != '') && ($tac == 4)) { 
// But then this one is not displaying why? at the moment there is not error displaying in the screen.
// it just display the html code of this condition elseif($tac == 4) 
//instead of the html inside of elseif (($prod != '') && ($cat == 4)) 
//I was wondering since ($tac == 4)  condition is in both elseif statment is getting php confused?  ...

}


The comments are inside the script it self.

help Don’t know what’s really going on.

php will only evaluate those expressions until it finds one that is true. Once it does, the remaining expressions are not checked.

elseif ($tac == 4){}
elseif (($drop != ‘’) && ($tac == 4)) {}

So, reorder them.

http://www.php.net/manual/en/control-structures.elseif.php

thank you cmalibu.

that made it.