exit

Output a message and terminate the current script

&reftitle.description; `void` `exit` `string` `status` `void` `exit` `int` `status`

Terminates execution of the script. Shutdown functions and object destructors will always be executed even if `exit` is called.

`exit` is a language construct and it can be called without parentheses if no `status` is passed.

&reftitle.parameters;

`status`

- If `status` is a string, this function prints the `status` just before exiting.

  If `status` is an `int`, that value will be used as the exit status and not printed. Exit statuses should be in the range 0 to 254, the exit status 255 is reserved by PHP and shall not be used. The status 0 is used to terminate the program successfully.

&reftitle.returnvalues;

&return.void;

&reftitle.examples;

### `exit` example

    <?php

    $filename = '/path/to/data-file';
    $file = fopen($filename, 'r')
        or exit("unable to open file ($filename)");

    ?>

### `exit` status example

    <?php

    //exit program normally
    exit;
    exit();
    exit(0);

    //exit with an error code
    exit(1);
    exit(0376); //octal

    ?>

### Shutdown functions and destructors run regardless

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

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

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

    exit();
    echo 'This will not be output.';
    ?>

&example.outputs;

     Shutdown: shutdown()
     Destruct: Foo::__destruct()

&reftitle.notes; ¬e.language-construct;

This language construct is equivalent to `die`.

&reftitle.seealso;

- `register_shutdown_function`