简短的问题:为什么?!?
以下课程在致电时发送 ALL ALLRIGHT :Status::validate('ab')
class Status
{
const FRESH = 0;
const PENDING = 25;
const CANCELLED = 50;
public static function validate($status)
{
switch ($status) {
case self::FRESH:
case self::PENDING:
case self::CANCELLED:
echo 'ALL ALLRIGHT';
default:
echo 'ERROR!';
}
die;
}
}
答案 0 :(得分:4)
我相信它是因为你的$value = 'abc';
$other_value = '21abc';
echo (int)$value;
echo '<br>';
echo (int)$other_value;
正在被转换为int。
0
21
将返回:
ab
这会导致它认为Status::FRESH
值等于switch
我不确定FROM centos:latest
ENV BLABLA hello
RUN echo $BLABLA
# outputs: "hello"
语句是否进行了这种类型转换。
我认为我是对的。更多信息PHP Manual - switch。
关于在此处将字符串转换为整数的引用PHP Manual - Strings。
答案 1 :(得分:-1)
打破案件
$status