(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().
status
status
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
0
y254
. El código de salida255
está 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 resultado del ejemplo sería:
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.