我有这种方法:
private function convertStatusStringToIntZeroOrOne(string $status)
{
$status = strtolower($status);
switch ($status) {
case "off":
case "0":
case 0:
$int_status = 0;
break;
case "on":
case "1":
case 1:
$int_status = 1;
break;
default:
$int_status = 1;
break;
}
return $int_status;
}
$status
参数,当字符串“ On”(O字母大写)为字符串时,返回0(零)。
当然,我需要返回1。
谢谢
答案 0 :(得分:6)
由于switch
选项中的数字为0和1,因此它使用的是数字比较-数字“开”为0,因此与0匹配。
由于参数的类型为string
,因此数字将转换为字符串,因此请删除数字比较...
function convertStatusStringToIntZeroOrOne(string $status)
{
$status = strtolower($status);
switch ($status) {
case "off":
case "0":
$int_status = 0;
break;
case "on":
case "1":
$int_status = 1;
break;
default:
$int_status = 1;
break;
}
return $int_status;
}
echo convertStatusStringToIntZeroOrOne("On");
尽管您可以将功能简化为...
function convertStatusStringToIntZeroOrOne(string $status)
{
$status = strtolower($status);
return ($status == "off" || $status == 0)?0:1;
}