📜  PHP中是否有任何 switch-case 的替代方案?

📅  最后修改于: 2022-05-13 01:56:24.236000             🧑  作者: Mango

PHP中是否有任何 switch-case 的替代方案?

PHP在第 8 版的发布中引入了 switch-case 的替代方案。

在PHP的第 8 版发布中,引入了match()函数,它是 switch-case 的新替代方案。这是一个强大的功能,通常是最好的决定,而不是switch-casematch()函数的工作方式也与switch类似,即它根据传入的参数找到匹配的案例。

句法 :

$variable = match() {
    somecase => 'match_value' ,
    anothercase => 'match_value',
    default => 'match_value',
};

例子:

$value = match(1){
    1 => 'Hii..',
    2 => 'Hello..',
    default => 'Match not found !',
};

match()函数与 switch-case 有何不同?

  • 它使用箭头符号而不是冒号。
  • 它不需要 break 语句。
  • 大小写用逗号而不是 break 语句分隔。
  • match()的语法以分号结尾。
  • 它根据提供的参数返回一些值。
  • 严格的类型检查和区分大小写。
  • 当没有默认值和匹配值时,会抛出错误。
  • 复杂的条件实现和改进的性能。

注意:函数match()在PHP 8 及更高版本上受支持。

PHP代码:下面的例子演示了switch-case ,它将根据在switch()的参数中传递的值为变量$message赋值

PHP


PHP
 'Monday',
    2 => 'Tuesday',
    3 => 'Wednesday',
    4 => 'Thursday',
    5 => 'Friday',
    6 => 'Saturday',
    7 => 'Sunday',
    default => 'Invalid Input !',
};
 
echo $message;
?>


输出
Sunday

PHP代码:以下代码演示了仅在PHP 8 或更高版本中执行的match()函数。

PHP

 'Monday',
    2 => 'Tuesday',
    3 => 'Wednesday',
    4 => 'Thursday',
    5 => 'Friday',
    6 => 'Saturday',
    7 => 'Sunday',
    default => 'Invalid Input !',
};
 
echo $message;
?>
  

输出:

Sunday