It's actually wrong.
The switch statement takes the value in [font=monospace]switch($value)[/font] and then steps through each of the cases [font=monospace]case $case[/font],
testing [font=monospace]$value==$case[/font] each time, until one of those tests evaluates to [font=monospace]true[/font].
It's for cleaner code when you have a bunch of [font=monospace]if($value=='foo'){}elseif($value=='bar'){}elseif($value=='baz'){}...[/font] so you don't have to keep writing [font=monospace]$value==[/font] all the time.
What you have is equivalent to
if($number == ($number <= 10))
{
echo "tiny number";
}
elseif($number == ($number > 10 && $number <= 50))
{
echo "medium number";
}
else
{
echo "large number";
}
When instead you want
if($number <= 10)
{
echo "tiny number";
}
elseif($number > 10 && $number <= 50)
{
echo "medium number";
}
else
{
echo "large number";
}