Try this:
#===================
function index() #_Dresden()
{
$x = '$a=%d $b=%d $c=%d Result== %s';
$a=1; $b=1; $c=1;
echo sprintf($x, $a, $b, $c, $this->test_again( $a, $b, $c )) ;
echo '<br /><br />';
$a=1; $b=1; $c=0;
echo sprintf($x, $a, $b, $c, $this->test_again( $a, $b, $c )) ;
echo '<br /><br />';
$a=1; $b=0; $c=0;
echo sprintf($x, $a, $b, $c, $this->test_again( $a, $b, $c )) ;
echo '<br /><br />';
$a=0; $b=1; $c=1;
echo sprintf($x, $a, $b, $c, $this->test_again( $a, $b, $c )) ;
echo '<br /><br />';
$a=0; $b=1; $c=0;
echo sprintf($x, $a, $b, $c, $this->test_again( $a, $b, $c )) ;
echo '<br /><br />';
$a=0; $b=0; $c=1;
echo sprintf($x, $a, $b, $c, $this->test_again( $a, $b, $c )) ;
echo '<br /><br />';
$a=0; $b=0; $c=0;
echo sprintf($x, $a, $b, $c, $this->test_again( $a, $b, $c )) ;
echo '<br /><br />';
}
#===================
function test_again($a, $b, $c)
{
$result = '';
switch(TRUE)
{
case ($a && $b && $c): $result = '$a && $b && $c';
break;
case ($a && $b): $result = '$a && $b';
break;
case ($a && $c): $result = '$a && $c';
break;
case ($b && $c): $result = '$b && $c';
break;
case ($b || $c): $result = '$b || $c';
break;
case ($a || $c): $result = '$a || $c';
break;
default: $result = 'default';
}
return $result;
}
#Output
$a=1 $b=1 $c=1 Result== $a && $b && $c
$a=1 $b=1 $c=0 Result== $a && $b
$a=1 $b=0 $c=0 Result== $a || $c
$a=0 $b=1 $c=1 Result== $b && $c
$a=0 $b=1 $c=0 Result== $b || $c
$a=0 $b=0 $c=1 Result== $b || $c
$a=0 $b=0 $c=0 Result== default