exit
(PHP 4, PHP 5, PHP 7, PHP 8)
exit — Termina o script atual com um código ou uma mensagem de status
Descrição
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.
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;
?>