2026-10-20 11:51:49
在 PHP 中,switch 语句是一种多分支选择结构,用于根据表达式的值执行不同的代码块。以下是详细的使用方法和注意事项:
基本语法switch (expression) { case value1: // 当 expression === value1 时执行的代码 break; case value2: // 当 expression === value2 时执行的代码 break; // 可添加更多 case 分支 default: // 当 expression 不匹配任何 case 时执行的代码(可选) break;}工作原理用户输入处理根据用户选择执行不同操作(如菜单选项):
$choice = readline("请输入选项(1/2/3):");switch ($choice) { case '1': echo "执行操作1"; break; case '2': echo "执行操作2"; break; case '3': echo "执行操作3"; break; default: echo "无效输入";}数据值分支根据变量值选择不同计算逻辑:
$status = 'pending';switch ($status) { case 'pending': echo "订单待处理"; break; case 'shipped': echo "订单已发货"; break;}文件扩展名判断根据文件类型加载不同处理函数:
$ext = pathinfo($file, PATHINFO_EXTENSION);switch ($ext) { case 'jpg': case 'png': loadImageHandler(); break; case 'mp4': loadVideoHandler(); break;}break 的重要性省略 break 会导致“穿透”(继续执行下一个 case 的代码),除非故意利用此特性:
switch ($fruit) { case 'apple': case 'pear': echo "这是苹果或梨"; break; case 'banana': echo "这是香蕉";}严格比较case 使用 === 比较,需注意类型匹配:
$num = '1'; // 字符串switch ($num) { case 1: // 不会匹配,因为类型不同 echo "数字1"; break; default: echo "未匹配";}default 分支建议始终包含 default 以处理意外值,但非强制。
表达式限制expression 必须是标量值(整数、字符串、浮点数等),不能是数组或对象。
通过合理使用 switch,可以显著提升代码可读性和维护性。