I dont see what ya complaining about, $ifmatch does exactly what its ment to do, gives you the value of the first arguement of the LAST condition checked, if you want to go and run other code then try and come back and test it again, well to bad to sad.

The $ifmatch should only be used when u know exactly what the results could be. as soon as you do soemthing else well its a gamble, oh any you know how i said its the LAST condition checked, well look at the two lines below, you would think the results both would be Y but check it out....

if ((X == X) && (Y == Y) { echo result1 $ifmatch }
if ((X == X) || (Y == Y) { echo result2 $ifmatch }

result1 Y
result2 X

since X == X in the 2nd line is true the IF is valid and thus the Y == Y is never even checked