W3docs

break

Aprende cómo usar la palabra clave "break" en PHP para salir de bucles y sentencias switch, con ejemplos prácticos y casos de uso comunes.

La palabra clave break en PHP

break es una sentencia de control de flujo que termina inmediatamente el bucle o switch envolvente más cercano. La ejecución salta a la primera línea después de esa estructura — las iteraciones restantes se omiten. Funciona dentro de for, foreach, while, do...while y switch.

Se usa break cuando ya encontraste lo que buscabas o cuando una condición hace que continuar no tenga sentido: un registro coincidente en una lista, un error irrecuperable o un caso de switch que ya fue procesado. Detener la ejecución antes de tiempo ahorra trabajo y mantiene la lógica clara.

Esta página cubre la sintaxis, cada tipo de bucle, el caso de switch, cómo salir de bucles anidados con break N, y en qué se diferencia break de continue.

Sintaxis

<?php

while (condition) {
  // code that runs each iteration
  if (break_condition) {
    break; // exit the loop right now
  }
}
// execution continues here after break

Cuando break_condition es verdadera, el bucle termina y se ejecuta la línea después de la llave de cierre. La condición es opcional — un break; sin más siempre sale del bucle — pero en la práctica casi siempre se protege con un if, ya que de lo contrario el bucle solo se ejecutaría una vez.

Salir de un bucle

El uso más común es detener una búsqueda en cuanto se obtiene una respuesta. Una vez encontrado el valor, no hay razón para seguir recorriendo el resto del array.

<?php

$haystack = [10, 22, 35, 47, 58];
$target = 35;
$found = false;

foreach ($haystack as $index => $value) {
  if ($value === $target) {
    $found = true;
    echo "Found $target at index $index\n";
    break; // stop — no need to check the rest
  }
}

if (!$found) {
  echo "Not found\n";
}

// Output: Found 35 at index 2

El mismo patrón funciona con los demás tipos de bucle. Aquí break sale de un bucle while (true) — un bucle intencionalmente infinito cuya única salida es el break:

php— editable, runs on the server

Usar break en un switch

Dentro de una sentencia switch, break es lo que evita que la ejecución "caiga" al siguiente caso. Sin él, PHP sigue ejecutando el código de los casos que están debajo del que coincidió.

<?php

$role = "editor";

switch ($role) {
  case "admin":
    echo "Full access";
    break;
  case "editor":
    echo "Can edit content";
    break; // without this, "Read-only" would also run
  default:
    echo "Read-only";
}

// Output: Can edit content

Salir de bucles anidados con break N

Por defecto, break solo sale del bucle más interno. Para salir de varios niveles a la vez, se pasa un número: break 2; sale de dos estructuras envolventes, break 3; sale de tres, y así sucesivamente.

<?php

for ($i = 1; $i <= 3; $i++) {
  foreach (['a', 'b', 'c'] as $letter) {
    if ($letter === 'b') {
      break 2; // exit BOTH the foreach and the for
    }
    echo "$i-$letter\n";
  }
}

echo "Done\n";

// Output:
// 1-a
// Done

Un break; simple aquí solo terminaría el foreach interno, y el for externo comenzaría su siguiente iteración. break 2; termina ambos, por lo que la ejecución salta directamente a echo "Done";.

Nota: El número después de break debe ser un literal — break $level; es un error fatal desde PHP 5.4. Si necesitas esa flexibilidad, reestructura los bucles o muévelos a una función y usa return.

break vs. continue

Estos dos son fáciles de confundir:

  • break detiene el bucle por completo y continúa con el código que le sigue.
  • continue omite solo el resto de la iteración actual y salta a la siguiente — el bucle sigue ejecutándose.

Consulta break y continue para ver una comparación lado a lado.

Errores comunes

  • Olvidar break en un switch provoca una caída accidental, haciendo que se ejecuten múltiples casos. Esto puede ser intencional en ocasiones (agrupar casos), pero normalmente es un error.
  • break solo afecta a bucles y switch — no se puede usar para salir de un bloque if o de una función. Usa return para salir de una función.
  • Contar niveles para break N es frágil; si más adelante envuelves el código en otro bucle, el número será incorrecto. Mantén el anidamiento poco profundo.

Temas relacionados

Práctica

Práctica
¿Qué hace la sentencia 'break' en PHP?
¿Qué hace la sentencia 'break' en PHP?
Was this page helpful?