? :
$xiaoming = '小明';
var_dump( $xiaoming ? '我是小明' : '我也不知道我是谁' );
if
$xiaoming = '小明';
if($xiaoming){
echo $xiaoming;
}
if
else
$xiaoming = '小明';
if($xiaoming){
echo $xiaoming;
}else{
echo '小红';
}
if
elseif
else
$xiaoming = '小明';
$xiaohong = '小红';
if($xiaoming){
echo $xiaoming;
}else if($xiaohong){
echo $xiaohong;
}else{
echo '小王';
}
switch
case
default
$str = 'xiaogang';
switch ($str) {
case 'xiaoming':
echo '我是小明';
case 'xiaohong':
echo '我是小红';
case 'xiaogang':
echo '我是小刚';
default:
echo '我不知道我是谁';
}
break
结束当前代码
$str = 'xiaogang';
switch ($str) {
case 'xiaoming':
echo '我是小明';
break;
case 'xiaohong':
echo '我是小红';
break;
case 'xiaogang':
echo '我是小刚';
break;
default:
echo '我不知道我是谁';
break;
}
PHP8
新特性 match
$str = 'xiaogang';
echo match ($str) {
'xiaoming' => '我是小明',
'xiaohong' => '我是小红',
'xiaogang' => '我是小刚'
};
匹配多条件、默认值
$str = 'xiaoming';
echo match ($str) {
'xiaohong','xiaohongshitai' => "我是小红",
'xiaogang','ximendaguanren' => "我是小刚",
default => '我是小明',
};
备:没有默认值,会报错的
switch
和 match
对比match
比较分支值,使用了严格比较 (===
), 而 switch 语句使用了松散比较。
match
表达式会返回一个值。
match
的分支不会像 switch
语句一样, 落空时执行下个 case。
match
表达式必须彻底列举所有情况。