Hi,
Sorry, I forgot to CC my last reply to the list. I noticed similar
behaviour and filed a bug report: 30285. The case described in the bug
report is as follows:
$x = "a";
switch ($x) {
default:
echo "default";
break;
case "a":
echo "a";
break;
}
// Prints "a"
Even though the documentation mentions that default should always be last,
this is a BC break from 5.0.x and at least 4.3.2.
Thanks,
Benj
On October 7, 2004 10:59 pm, Andi Gutmans wrote:
> It's always been like that and has been documented for ages in the
> manual.
>
> Andi
>
> At 08:24 PM 10/7/2004 -0700, Frank M. Kromann wrote:
> >Hello Everyone,
> >
> >I just discovered a small thing in the switch() statement. The position
> > of the default: clause has to be at the end of the code:
> >
> >$a = 1;
> >switch ($a) {
> > default :
> > case 0 :
> > $b = 1;
> > break;
> > case 1 :
> > $b = 2;
> > break;
> >}
> >echo $b; // should print 2 but it prints 1
> >
> >$a = 1;
> >switch ($a) {
> > case 1 :
> > $b = 2;
> > break;
> > default :
> > case 0 :
> > $b = 1;
> > break;
> >}
> >echo $b; // prints 2 as expected.
> >
> >This is tested on Linux with PHP5 CVS-HEAD
> >
> >What changed ?
> >
> >- Frank
> >
> >
> >
> >
> >
> >--
> >PHP Internals - PHP Runtime Development Mailing List
> >To unsubscribe, visit: http://www.php.net/unsub.php
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php