(PHP 4, PHP 5, PHP 7, PHP 8)
exit — Terminar el script en curso con un código de estado o un mensaje
Termina el script actual.
Las funciones de cierre
y los destructores de objetos
siempre se ejecutarán incluso si exit es llamado.
Sin embargo, los bloques finally nunca se ejecutan.
Un código de salida de 0 se utiliza para indicar que el programa ha
completado sus tareas correctamente. Cualquier otro valor indica que ocurrió un error
durante la ejecución.
exit() es una función especial, ya que dispone de un token dedicado en el analizador sintáctico. Puede ser utilizada como una instrucción (es decir, sin paréntesis) para terminar el script con el código de estado por defecto.
No es posible desactivar o crear una función en un espacio de nombres que reemplace la función global exit().
statusstatus es un string,
esta función muestra status justo antes de salir.
El código de salida devuelto por PHP es 0.
Si status es un int,
el código de salida devuelto por PHP será status.
Nota: Los códigos de salida deben estar comprendidos entre
0y254. El código de salida255está reservado por PHP y no debe ser utilizado.
Antes de PHP 8.4.0, exit() no respetaba la
lógica habitual de manipulación de tipos
de PHP ni la declaración
strict_types.
Cualquier valor no int era convertido a string, incluyendo los valores de tipo resource y array. A partir de PHP 8.4.0, la función sigue la gestión estándar de tipos y genera una TypeError para los valores no válidos.
Como esta función termina el script PHP, ningún valor es devuelto.
| Versión | Descripción |
|---|---|
| 8.4.0 |
exit() es ahora una verdadera función,
por lo tanto sigue la lógica habitual de
manipulación de tipos,
es afectada por la declaración
strict_types,
puede ser llamada con argumentos nombrados y ser utilizada
como una función variable.
|
Ejemplo #1 Ejemplo básico de la función exit()
<?php
// salir del programa normalmente
exit();
exit(0);
// salir con un código de error
exit(1);
?>Ejemplo #2 Ejemplo de exit() con un string
<?php
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
or exit("no se puede abrir el archivo ($filename)");
?>Ejemplo #3 Ejemplo de ejecución de funciones de cierre y destructores de objetos
<?php
class Foo
{
public function __destruct()
{
echo 'Destructor : ' . __METHOD__ . '()' . PHP_EOL;
}
}
function shutdown()
{
echo 'Cierre : ' . __FUNCTION__ . '()' . PHP_EOL;
}
$foo = new Foo();
register_shutdown_function('shutdown');
exit();
echo 'Esto nunca será mostrado.';
?>El ejemplo anterior mostrará :
Cierre : shutdown() Destrucción : Foo::__destruct()
Ejemplo #4 exit() como instrucción
<?php
// salir del programa normalmente con el código de salida 0
exit;
?>A partir de PHP 8.4.0, exit() era una construcción del lenguaje y no una función, por lo tanto no era posible llamarla utilizando funciones variables, o argumentos nombrados.