exit

(PHP 4, PHP 5, PHP 7, PHP 8)

exitTermina o script atual com um código ou uma mensagem de status

Descrição

exit(string|int $status = 0): never

Termina a execução do script. Funções de desligamento e destrutores de objeto sempre serão executados mesmo que exit() seja chamada. Entretanto, blocos finally nunca são executados.

Um código de saída igual a 0 é usado para indicar que o programa foi bem sucedido em suas tarefas. Qualquer outro valor indica que algum tipo de erro ocorreu durante a execução.

exit() é uma função especial porque tem um token dedicado no analisador, e como tal pode ser usada como uma instrução (ou seja, sem parênteses) para terminar o script com o código de status padrão.

Cuidado

Não é possível desabilitar ou criar uma função com namespace ocultando a função global exit().

Parâmetros

status
Se status for uma string, esta função exibe o status logo antes de sair. O código de saída retornado pelo PHP será 0.

Se status for um int, o código de saída retornado pelo PHP será status.

Nota: Códigos de saída devem estar no intervalo 0 a 254, o código de saída 255 é reservado pelo PHP e não deve ser usado.

Aviso

Antes do PHP 8.4.0, exit() não seguia o padrão do PHP de conversão automática de tipos e nem respeitava a declaração strict_types.

Qualquer valor que não fosse do tipo int era convertido para string, incluindo valores dos tipos resource e array. A partir do PHP 8.4.0, ela segue a conversão automática de tipos e lança uma exceção do tipo TypeError para valores inválidos.

Valor Retornado

Como a função termina o script PHP, nenhum valor é retornado.

Registro de Alterações

Versão Descrição
8.4.0 exit() agora é uma função verdadeira, portanto segue a conversão automática de tipos usual, é afetada pela declaração strict_types, pode ser chamada com argumentos nomeados, e pode ser uma função variável.

Exemplos

Exemplo #1 Exemplo básico de exit()

<?php

// sai do programa normalmente
exit();
exit(
0);

// sai com um código de erro
exit(1);

?>

Exemplo #2 Exemplo de exit() com uma string

<?php

$filename
= '/caminho/para/arquivo-de-dados';
$file = fopen($filename, 'r')
or exit(
"não foi possível abrir o arquivo ($filename)");

?>

Exemplo #3 Funções de desligamento e destrutores de objeto são executados independentemente

<?php
class Foo
{
public function
__destruct()
{
echo
'Destrutor: ' . __METHOD__ . '()' . PHP_EOL;
}
}

function
shutdown()
{
echo
'Desligamento: ' . __FUNCTION__ . '()' . PHP_EOL;
}

$foo = new Foo();
register_shutdown_function('shutdown');

exit();
echo
'Este texto não será mostrado.';
?>

O exemplo acima produzirá:

Desligamento: shutdown()
Destrutor: Foo::__destruct()

Exemplo #4 exit() como uma instrução

<?php

// sai do programa normalmente com um código de saída igual a 0
exit;

?>

Notas

Aviso

Antes do PHP 8.4.0, exit() era uma construção de linguagem e não uma função, portanto não era possível chamá-la usando funções variáveis, ou argumentos nomeados.

Veja Também