W3docs

exit()

A função exit() em PHP encerra imediatamente o script atual e retorna um código de saída especificado.

O que a Função exit() Faz

A função exit() em PHP interrompe o script atual exatamente onde é chamada. Nenhum código adicional é executado após ela — o script termina imediatamente. É usada com mais frequência para interromper a execução após um redirecionamento, quando uma condição fatal é detectada ou para exibir uma mensagem final antes de encerrar.

exit é um construto de linguagem, não uma função comum, portanto os parênteses são opcionais: exit; e exit(); funcionam igualmente. die() é um alias exato de exit() — eles se comportam de forma idêntica, e qual dos dois você usa é puramente uma questão de estilo. Consulte o capítulo sobre die() para saber mais sobre o alias.

Esta página aborda o que exit() faz, a diferença entre seus argumentos de status e mensagem, os códigos de saída que retorna ao shell e os erros comuns a evitar.

Sintaxe e o Argumento Opcional

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

exit() aceita um único argumento opcional que pode ser um inteiro ou uma string, e os dois são tratados de forma muito diferente:

  • Inteiro — usado como o status de saída do processo (0–254). Não é impresso. Por convenção, 0 significa sucesso e qualquer valor diferente de zero indica um erro. Isso é importante quando um script é executado a partir da linha de comando e outro programa inspeciona seu código de saída.
  • Stringimpressa imediatamente antes do encerramento do script, e o status de saída é 0. Útil para exibir uma mensagem de erro final.

Se você chamar exit() sem argumento, o script termina com status 0 e não imprime nada.

Exibindo uma Mensagem Antes de Encerrar

Quando você passa uma string, o PHP a exibe e então para:

<?php

$config = @file_get_contents('config.ini');

if ($config === false) {
    exit("Fatal: config.ini could not be read.\n");
}

echo "Config loaded.\n";

Se o arquivo estiver ausente, o script imprime Fatal: config.ini could not be read. e o echo final nunca é executado.

Retornando um Código de Saída ao Shell

Quando você passa um inteiro, nada é impresso, mas o valor se torna o código de saída do processo — útil para scripts executados no terminal ou em um pipeline de CI:

<?php

$ok = false; // pretend a check failed

if (!$ok) {
    exit(1); // non-zero = failure
}

exit(0); // success

Ao executar isso com php script.php e depois echo $? no shell, o resultado seria 1. Um programa chamador pode tomar decisões com base nesse código sem precisar analisar nenhuma saída.

Interrompendo um Script Após um Redirecionamento

O caso de uso web clássico é garantir que nenhum código adicional seja executado após o envio de um cabeçalho Location:

<?php

if (!isset($_SESSION['user'])) {
    header('Location: login.php');
    exit();
}

// Protected code below only runs for logged-in users.

Sem o exit(), o PHP continuaria executando as linhas após o redirecionamento — potencialmente expondo conteúdo protegido a um usuário que deveria ter sido enviado para a página de login. Veja header() e PHP Sessions para entender as peças das quais este trecho depende.

Erros Comuns

  • exit() executa funções de encerramento e destrutores de objetos, mas não descarrega um buffer de saída iniciado com ob_start() se você sair no meio do buffer em configurações mais antigas — feche os buffers explicitamente quando isso for importante.
  • Códigos de status acima de 254 são reservados. Use 0–254; 255 é usado internamente pelo PHP.
  • Não use exit() como controle de fluxo normal. Dentro de funções, retorne um valor ou lance uma exceção para que o chamador possa reagir. Um exit() enterrado em uma função torna o código difícil de testar, pois mata todo o processo em vez de apenas a chamada.
  • Um argumento string não é um código de erro. exit("5") imprime 5 e sai com status 0, enquanto exit(5) sai com status 5 e não imprime nada.

Resumo

exit() (e seu alias die()) encerra um script PHP imediatamente. Passe um inteiro para definir o status de saída do shell, ou uma string para exibir uma mensagem final. É ideal para interromper a execução após um redirecionamento ou em caso de erro irrecuperável, mas para ramificações comuns prefira if/else, valores de retorno e exceções para que seu código permaneça testável.

Prática

Prática
O que a função exit() do PHP faz?
O que a função exit() do PHP faz?
Was this page helpful?