<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.misc.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'function.exit.php',
    1 => 'exit',
    2 => 'Beendet das aktuelle Skript mit einem Statuscode oder einer Meldung',
  ),
  'up' => 
  array (
    0 => 'ref.misc.php',
    1 => 'Sonstige Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.eval.php',
    1 => 'eval',
  ),
  'next' => 
  array (
    0 => 'function.get-browser.php',
    1 => 'get_browser',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/misc/functions/exit.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.exit" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">exit</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">exit</span> &mdash; <span class="dc-title">Beendet das aktuelle Skript mit einem Statuscode oder einer Meldung</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.exit-description">
  <h3 class="title">Beschreibung</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>exit</strong></span>(<span class="methodparam"><span class="type"><span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.integer.php" class="type int">int</a></span></span> <code class="parameter">$status</code><span class="initializer"> = 0</span></span>): <span class="type"><a href="language.types.never.php" class="type never">never</a></span></div>

  <p class="simpara">
   Beendet die Ausführung des Skripts.
   <a href="function.register-shutdown-function.php" class="link">Shutdown-Funktionen</a>
   und <a href="language.oop5.decon.php#language.oop5.decon.destructor" class="link">Objekt-Destruktoren</a>
   werden immer ausgeführt, auch wenn <span class="function"><strong>exit()</strong></span> aufgerufen wurde.
   <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a>-Blöcke werden jedoch nie ausgeführt.
  </p>
  <p class="simpara">
   Ein Exit-Code von <code class="literal">0</code> zeigt an, dass das Programm seine
   Aufgaben erfolgreich ausgeführt hat.
   Jeder andere Wert bedeutet, dass während der Ausführung ein Fehler
   aufgetreten ist.
  </p>
  <p class="simpara">
   <span class="function"><strong>exit()</strong></span> ist eine besondere Funktion, weil sie im Parser
   ein eigenes Token hat. Als solche kann sie wie eine Anweisung (d. h. ohne
   Klammern) verwendet werden, um das Skript mit dem Standard-Statuscode zu
   beenden.
  </p>
  <div class="caution"><strong class="caution">Achtung</strong>
   <p class="simpara">
    Es ist nicht möglich, die globale Funktion <span class="function"><strong>exit()</strong></span> zu
    deaktivieren oder eine Funktion in einem Namensraum zu erstellen, die diese
    Funktion überschreibt.
   </p>
  </div>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.exit-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <dl>
   
    <dt><code class="parameter">status</code></dt>
    <dd>
     <span class="simpara">
      Falls <code class="parameter">status</code> eine Zeichenkette ist, gibt diese
      Funktion den <code class="parameter">status</code> unmittelbar vor dem Beenden aus.
      Der von PHP zurückgegebene Exit-Code ist <code class="literal">0</code>.
     </span>
     <p class="para">
      Falls <code class="parameter">status</code> vom Typ <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> ist, gibt
      PHP <code class="parameter">status</code> als Exit-Code zurück.
      <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
       <span class="simpara">
        Exit-Codes sollten im Bereich von <code class="literal">0</code> bis
        <code class="literal">254</code> liegen, weil der Exit-Code <code class="literal">255</code>
        von PHP reserviert ist und deshalb nicht benutzt werden sollte.
       </span>
      </p></blockquote>
     </p>
     <div class="warning"><strong class="warning">Warnung</strong>
      <p class="simpara">
       Vor PHP 8.4.0 folgte <span class="function"><strong>exit()</strong></span> nicht PHPs
       Standard-<a href="language.types.type-juggling.php#language.types.type-juggling.function" class="link">Semantik der Typen-Jonglage</a>
       und berücksichtigte auch nicht die
       <a href="language.types.declarations.php#language.types.declarations.strict" class="link"><code class="literal">strict_types</code></a>-Deklaration.
       declare.
      </p>
      <p class="simpara">
       Jeder Wert, der nicht vom Typ <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> war, wurde in
       <span class="type"><a href="language.types.string.php" class="type string">string</a></span> umgewandelt, also auch Werte vom Typ
       <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> und <span class="type"><a href="language.types.array.php" class="type array">array</a></span>.
       Seit PHP 8.4.0 folgt es der üblichen Semantik der Typen-Jonglage und löst
       bei ungültigen Werten einen <span class="exceptionname"><a href="class.typeerror.php" class="exceptionname">TypeError</a></span> aus.
      </p>
     </div>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.exit-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="simpara">
   Da diese Funktion das PHP-Skript beendet, wird kein Wert zurückgegeben.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.exit-changelog">
  <h3 class="title">Changelog</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Version</th>
      <th>Beschreibung</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.4.0</td>
      <td>
       <span class="function"><strong>exit()</strong></span> ist nun eine echte Funktion, folgt also der
       üblichen
       <a href="language.types.type-juggling.php#language.types.type-juggling.function" class="link">Semantik der Typen-Jonglage</a>,
       ist von der <a href="language.types.declarations.php#language.types.declarations.strict" class="link"><code class="literal">strict_types</code></a>-Deklaration
       betroffen, kann mit benannten Argumenten aufgerufen werden und kann eine
       <a href="functions.variable-functions.php" class="link">Variablenfunktion</a> sein.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 examples" id="refsect1-function.exit-examples">
  <h3 class="title">Beispiele</h3>
  <div class="example" id="example-1">
   <p><strong>Beispiel #1 Einfaches <code class="literal">exit</code>-Beispiel</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">// das Programm normal beenden<br /></span><span style="color: #007700">exit();<br />exit(</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// das Programm mit einem Fehlercode beenden<br /></span><span style="color: #007700">exit(</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
  <div class="example" id="example-2">
   <p><strong>Beispiel #2 <span class="function"><strong>exit()</strong></span>-Beispiel mit einem <span class="type"><a href="language.types.string.php" class="type string">string</a></span></strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$dateiname </span><span style="color: #007700">= </span><span style="color: #DD0000">'/pfad/zur/datei'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$datei </span><span style="color: #007700">= </span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #0000BB">$dateiname</span><span style="color: #007700">, </span><span style="color: #DD0000">'r'</span><span style="color: #007700">)<br />    or exit(</span><span style="color: #DD0000">"kann Datei </span><span style="color: #0000BB">$dateiname</span><span style="color: #DD0000"> nicht öffnen"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
  <div class="example" id="example-3">
   <p><strong>Beispiel #3 Shutdown-Funktionen und Destruktoren werden trotzdem aufgerufen</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">Foo<br /></span><span style="color: #007700">{<br />    public function </span><span style="color: #0000BB">__destruct</span><span style="color: #007700">()<br />    {<br />        echo </span><span style="color: #DD0000">'Destruktor: ' </span><span style="color: #007700">. </span><span style="color: #0000BB">__METHOD__ </span><span style="color: #007700">. </span><span style="color: #DD0000">'()' </span><span style="color: #007700">. </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />    }<br />}<br /><br />function </span><span style="color: #0000BB">shutdown</span><span style="color: #007700">()<br />{<br />    echo </span><span style="color: #DD0000">'Shutdown-Funktion: ' </span><span style="color: #007700">. </span><span style="color: #0000BB">__FUNCTION__ </span><span style="color: #007700">. </span><span style="color: #DD0000">'()' </span><span style="color: #007700">. </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">$foo </span><span style="color: #007700">= new </span><span style="color: #0000BB">Foo</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">register_shutdown_function</span><span style="color: #007700">(</span><span style="color: #DD0000">'shutdown'</span><span style="color: #007700">);<br /><br />exit();<br />echo </span><span style="color: #DD0000">'Dies wird nicht ausgegeben.'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Shutdown-Funktion: shutdown()
Destruktor: Foo::__destruct()</pre>
</div>
   </div>
  </div>
  <div class="example" id="example-4">
   <p><strong>Beispiel #4 <span class="function"><strong>exit()</strong></span> als Anweisung</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">// Programm mit Exit-Code 0 normal beenden<br /></span><span style="color: #007700">exit;<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </div>


 <div class="refsect1 notes" id="refsect1-function.exit-notes">
  <h3 class="title">Anmerkungen</h3>
  <div class="warning"><strong class="warning">Warnung</strong>
   <p class="simpara">
    Vor PHP 8.4.0 war <span class="function"><strong>exit()</strong></span> ein Sprachkonstrukt und keine
    Funktion, sodass es nicht möglich war, es mit
    <a href="functions.variable-functions.php" class="link">Variablenfunktionen</a>
    oder <a href="functions.arguments.php#functions.named-arguments" class="link">Benannte Argumenten</a>
    aufzurufen.
   </p>
  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.exit-seealso">
  <h3 class="title">Siehe auch</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.register-shutdown-function.php" class="function" rel="rdfs-seeAlso">register_shutdown_function()</a> - Registriert eine Funktion zur Ausf&uuml;hrung beim Skript-Abschluss</span></li>
   <li><a href="function.register-shutdown-function.php" class="link">Shutdown-Funktionen</a></li>
   <li><a href="language.oop5.decon.php#language.oop5.decon.destructor" class="link">Objekt-Destruktoren</a></li>
  </ul>
 </div>


</div><?php manual_footer($setup); ?>