NYCPHP Meetup

NYPHP.org

[nycphp-talk] Re: Weird Switch Behavior

Hans Zaunere lists at zaunere.com
Tue Sep 9 22:56:24 EDT 2008


> > Can someone explain why the below switch matches the 0 element?
> >
> > $ cat switch.php
> > <?php
> >
> > $tmp = array(
> >        'foo' => 1,
> >        'bar' => 2,
> >        'zap',
> > );
> >
> > foreach ($tmp as $key => $val) {
> 
> Nevermind - $key is an int so 'foo' is being cast to an int which
> evaluates to 0.
> 
> I think I would prefer that switch be a little more explicit.
> 
> >        switch ($key) {
> >                case 'foo':
> >                case 'bar':
> >                        echo "[$key][$val]\n";
> >                        break;
> >        }
> > }
> >
> > $ php -f switch.php
> > [foo][1]
> > [bar][2]
> > [0][zap]

Should switch be more explicit, or should the programmer? :)  Don't depend
on auto type casting...

H





More information about the talk mailing list