switch 문을 사용하는 다음 PHP 프로그램에서 왜 '= 1 대신 $ vSS = 2를 제공합니까? 나에게 이상한. PHP 5.5.9를 사용하고 있습니다. 대문자 ''를 추가하여 문제를 해결할 수 있지만, PHP가 $ vSS = 1 대신 $ vSS = 2를주는 이유가 궁금합니다. 정상입니까, 아니면 버그입니까?null 문자열을위한 PHP 스위치
<?php
R(15); // 1 ok
R(''); // why give me 2
R(40); // 2 ok
R(70); // 3 ok
#
function R($SS){
switch($SS){
case $SS<=20: $vSS=1;break;
case ($SS>20 and $SS<=49.9): $vSS=2; // why here?
if($SS == '') echo "DEBUG: SS is a null string.<br>\n";
break;
case ($SS<=100 and $SS>49.9): $vSS=3; break;
default:$vSS=0 ;
}
echo "DEBUG:(SS/vSS) $SS:$vSS\n";
}
?>
------ RESULT
DEBUG:(SS/vSS) 15:1
DEBUG: SS is a null string.<br>
DEBUG:(SS/vSS) :2
DEBUG:(SS/vSS) 40:2
DEBUG:(SS/vSS) 70:3
'함수 R()'에
switch()
문을 변경? 'echo "DEBUG : (SS/vSS) $ SS : $ vSS \ n";'오, 나는 그것을 좋아한다. @Barmar가 옳다.'switch-case'는 다음과 같이 작동하지 않는다. – vladkras