将多个if语句转换为match()语句



是否可以用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]);

最新更新