1
0
mirror of https://github.com/php/doc-en.git synced 2026-03-27 01:02:08 +01:00
Files
archived-doc-en/reference/misc/functions/exit.xml
Jakub Vrana a9b26c34e4 Display language constructs without parentheses
Side effect of this change is that include, require and return are now properly linked. They weren't because they don't live inside <refentry> so PhD doesn't know about them.

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@324522 c90b9560-bf6c-de11-be94-00142212c4b1
2012-03-25 08:39:30 +00:00

188 lines
4.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.exit" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>exit</refname>
<refpurpose>Output a message and terminate the current script</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>void</type><methodname>exit</methodname>
<methodparam choice="opt"><type>string</type><parameter>status</parameter></methodparam>
</methodsynopsis>
<methodsynopsis>
<type>void</type><methodname>exit</methodname>
<methodparam><type>int</type><parameter>status</parameter></methodparam>
</methodsynopsis>
<para>
Terminates execution of the script.
<link linkend="function.register-shutdown-function">Shutdown functions</link>
and <link linkend="language.oop5.decon.destructor">object destructors</link>
will always be executed even if <literal>exit</literal> is called.
</para>
<para>
<literal>exit</literal> is a language construct and it can be called
without parentheses if no <parameter>status</parameter> is passed.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>status</parameter></term>
<listitem>
<para>
If <parameter>status</parameter> is a string, this function prints the
<parameter>status</parameter> just before exiting.
</para>
<para>
If <parameter>status</parameter> is an <type>integer</type>, 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.
</para>
<note>
<simpara>
PHP &gt;= 4.2.0 does NOT print the <parameter>status</parameter>
if it is an <type>integer</type>.
</simpara>
</note>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.void;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><literal>exit</literal> example</title>
<programlisting role="php">
<![CDATA[
<?php
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
or exit("unable to open file ($filename)");
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title><literal>exit</literal> status example</title>
<programlisting role="php">
<![CDATA[
<?php
//exit program normally
exit;
exit();
exit(0);
//exit with an error code
exit(1);
exit(0376); //octal
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Shutdown functions and destructors run regardless</title>
<programlisting role="php">
<![CDATA[
<?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.';
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Shutdown: shutdown()
Destruct: Foo::__destruct()
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.language-construct;
<note>
<para>
This language construct is equivalent to <link linkend="function.die"><literal>die</literal></link>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>register_shutdown_function</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->