是否可以用match
构造替换所有if
条件?
如果是,怎么做?
$a = 1;
$b = 1.2;
$c = "xopa";
function filter($massive) {
foreach($massive as $items){
if(is_integer($items)){
echo "integer - {$items} <br>";
}
if(is_double($items)){
echo "floating point number - {$items} <br>";
}
if(is_string($items)){
echo "string - "{$items}" <br>";
}
}
}
filter([$a, $b, $c]);
是的,匹配条件可能很快如下:
<?php
$a = 1;
$b = 1.2;
$c = "xopa";
function filter($massive) {
foreach($massive as $item){
echo match(gettype($item)){
'integer' => "integer - $item",
'floot' => "float - $item",
'string' => "string - $item",
default => 'other type - '.$item
}.'<br>';
}
}
echo filter([$a,$b,$c]);