php有几种流程控制语句

PHP有4类流程控制语句:条件判断(if/else、switch、三元运算符、空合并运算符)、循环(while、do...while、for、foreach)、跳转与中断(break、continue、return、goto)、异常处理(try/catch/finally、throw、set_exception_handler)。

PHP 主要有 4 类流程控制语句,分别用于条件判断、循环执行、跳转控制和异常处理。掌握它们是写好逻辑的关键。

条件判断语句

根据表达式的真假决定执行哪段代码。

  • if / else if / else:最基础的分支结构,支持多条件嵌套
  • switch / case / default:适合多个固定值的等值判断,比多个 if 更清晰
  • 三元运算符(?:):一行内完成简单条件赋值,如 $a = $x > 0 ? '正数' : '非正'
  • 空合并运算符(??):PHP 7+ 新增,用于判断变量是否为空或未定义,如 $name = $_GET['name'] ?? '匿名'

循环语句

重复执行一段代码,直到满足退出条件。

  • while:先判断条件,再执行,可能一次都不执行
  • do...while:先执行一次,再判断,至少执行一遍
  • for:适合已知循环次数或需要初始化/递增/判断三要素的场景
  • foreach:专为数组和对象设计,遍历键值对最简洁,如 foreach ($arr as $key => $val)

跳转与中断语句

改变程序正常执行顺序,常配合循环或函数使用。

  • break:跳出当前循环或 switch,可带数字指定跳出几层(如 break 2
  • continue:跳过本次循环剩余部分,直接进入下一次迭代
  • return:结束当前函数并返回值,也可在脚本顶层中止执行
  • goto:PHP 支持但极少推荐使用,易导致逻辑混乱,仅在极少数嵌套循环跳出时有微弱价值

异常与错误处理语句

应对运行时意外情况,提升程序健壮性。

  • try / catch / finally:捕获并处理异常,finally 块无论是否抛出异常都会执行
  • throw:手动抛出一个 Exception 或其子类实例
  • set_exception_handler():注册全局异常处理器,捕获未被 try-catch 拦截的异常

基本上就这些。实际开发中,ifforeachtry-catch 出现频率最高,其他按需选用即可。