mira si este codigo que hice te ayuda en algo :)
Código PHP:
<?php
$a=" \$b == 'algo' && \$c == 1";
$b="algo";
$c=1;
condiciones($a);
function condiciones($if) {
global $b,$c;
//Separamos la variable segun sus estados de "Y"
$arr=split("&&",$if);
for($i=0;$i<count($arr);$i++) {
//Separamos las dos partes...
//Si es igual
$arr2=split("==",$arr[$i]);
if(count($arr2)>1) {
//Sí es igual
//Quitamos espacios en blanco del final, y del principio
$cond_a=trim($arr2[0]);
$cond_b=trim($arr2[1]);
//Quitamos $ de la variable
$cond_a=substr($cond_a,1,strlen($cond_a)-1);
//Buscamos las ' ' en caso de que sea una cadena, y se las quitamos :)
$cond_b=str_replace("'","",$cond_b);
//Hacemos la comprobacion
if($$cond_a == $cond_b) echo "a";
else echo "b";
}
}
}
?>
La funcion está sin acabar, le faltaria actuar con != y con || :)
Espero que te sirva, la idea, es indicarte como avanzar, no hacerlo :D