Switch neemt verkeerde case ?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$be='error';
switch ($be){
case 0 : echo' 0 case'. $be;
break;
case 'error' : echo' error case '.$be;
break;
}
switch ($be){
case 0 : echo' 0 case'. $be;
break;
case 'error' : echo' error case '.$be;
break;
}
=> 0 case error
Dit snap ik niet, lijkt me niet logisch !!?
Gewijzigd op 09/01/2015 12:15:48 door - Roland -
Je probleem zit volgens mij in het feit dat je verschillende types van data gebruikt in je case, 0 = numeriek en 'error' is alfa-numeriek.
Ik geloof dat je het oplost door case (string) 0 : te gebruiken op regel 4.
Ik geloof dat je het oplost door case (string) 0 : te gebruiken op regel 4.
ja, dat klopt... , maar ik vind het niet logisch
doet switch niet eigenlijk
if ($be==0) ......
if ($be=='error') ......
als je zo 'denkt' mag hij niet $be==0 kiezen !!!! Hoe 'denkt'switch ?
ps. type controleren doet php toch niet (niet uit zich zelf)
$be='error';
switch ($be){
case 0 : echo' 0 case'. $be;
break;
case 'error' : echo' error case '.$be;
break;
}
doet switch niet eigenlijk
if ($be==0) ......
if ($be=='error') ......
als je zo 'denkt' mag hij niet $be==0 kiezen !!!! Hoe 'denkt'switch ?
ps. type controleren doet php toch niet (niet uit zich zelf)
$be='error';
switch ($be){
case 0 : echo' 0 case'. $be;
break;
case 'error' : echo' error case '.$be;
break;
}
Lees dit eens:
http://php.net/manual/en/language.types.string.php#language.types.string.conversion
(3e alinea)
Jouw 'error' wordt omgezet naar waarde nul voor de vergelijking
http://php.net/manual/en/language.types.string.php#language.types.string.conversion
(3e alinea)
Jouw 'error' wordt omgezet naar waarde nul voor de vergelijking
Gewijzigd op 09/01/2015 12:47:52 door Jan de Laet