PHP8.0以降は switch の代わりに match を使う
PHP の switch は緩い比較を行うので、以下のコードを実行すると、0 ではなく false が出力されます。
<?php
function myFunc()
{
$value = 0;
switch ($value) {
case false:
return false;
case 0:
return 0;
}
}
var_dump(myFunc());
match を使うことで厳密な比較ができます。
以下の出力は0になります。
<?php
function myFunc()
{
$value = 0;
$result = match ($value) {
0 => 0,
false => false
};
return $result;
}
var_dump(myFunc());
他にも match の場合は網羅性のチェックをしてくれるなどいろいろ安全なコードを助ける機能があります。
最近のコメント