<?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 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.exit.php',
    1 => 'exit',
    2 => 'Terminar el script en curso con un c&oacute;digo de estado o un mensaje',
  ),
  'up' => 
  array (
    0 => 'ref.misc.php',
    1 => 'Funciones Varias',
  ),
  'prev' => 
  array (
    0 => 'function.eval.php',
    1 => 'eval',
  ),
  'next' => 
  array (
    0 => 'function.get-browser.php',
    1 => 'get_browser',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    '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">Terminar el script en curso con un código de estado o un mensaje</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.exit-description">
  <h3 class="title">Descripción</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">
   Termina el script actual.
   Las <a href="function.register-shutdown-function.php" class="link">funciones de cierre</a>
   y los <a href="language.oop5.decon.php#language.oop5.decon.destructor" class="link">destructores de objetos</a>
   siempre se ejecutarán incluso si <code class="literal">exit</code> es llamado.
   Sin embargo, los bloques <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a> nunca se ejecutan.
   </p>
   <p class="simpara">
    Un código de salida de <code class="literal">0</code> se utiliza para indicar que el programa ha
    completado sus tareas correctamente. Cualquier otro valor indica que ocurrió un error
    durante la ejecución.
   </p>
   <p class="simpara">
    <span class="function"><strong>exit()</strong></span> es una función especial,
    ya que dispone de un token dedicado en el analizador sintáctico.
    Puede ser utilizada como una instrucción (es decir, sin paréntesis)
    para terminar el script con el código de estado por defecto.
   </p>
   <div class="caution"><strong class="caution">Precaución</strong>
    <p class="simpara">
     No es posible desactivar o crear una función en un espacio de nombres
     que reemplace la función global <span class="function"><strong>exit()</strong></span>.
    </p>
   </div>
  </div>


  <div class="refsect1 parameters" id="refsect1-function.exit-parameters">
   <h3 class="title">Parámetros</h3>
   <dl>
    
     <dt><code class="parameter">status</code></dt>
     <dd>
      <span class="simpara">
       Si <code class="parameter">status</code> es un string,
       esta función muestra <code class="parameter">status</code> justo antes de salir.
       El código de salida devuelto por PHP es <code class="literal">0</code>.
      </span>
      <p class="para">
       Si <code class="parameter">status</code> es un <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>,
       el código de salida devuelto por PHP será <code class="parameter">status</code>.
       <blockquote class="note"><p><strong class="note">Nota</strong>: 
        <span class="simpara">
         Los códigos de salida deben estar comprendidos entre <code class="literal">0</code> y <code class="literal">254</code>.
         El código de salida <code class="literal">255</code> está reservado por PHP y no debe ser utilizado.
        </span>
       </p></blockquote>
      </p>
      <div class="warning"><strong class="warning">Advertencia</strong>
       <p class="simpara">
        Antes de PHP 8.4.0, <span class="function"><strong>exit()</strong></span> no respetaba la
        <a href="language.types.type-juggling.php#language.types.type-juggling.function" class="link">lógica habitual de manipulación de tipos</a>
        de PHP ni la declaración
        <a href="language.types.declarations.php#language.types.declarations.strict" class="link"><code class="literal">strict_types</code></a>.
       </p>
       <p class="simpara">
        Cualquier valor no <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> era convertido a <span class="type"><a href="language.types.string.php" class="type string">string</a></span>,
        incluyendo los valores de tipo <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> y <span class="type"><a href="language.types.array.php" class="type array">array</a></span>.
        A partir de PHP 8.4.0, la función sigue la gestión estándar de tipos y genera una
        <span class="exceptionname"><a href="class.typeerror.php" class="exceptionname">TypeError</a></span> para los valores no válidos.
       </p>
      </div>
     </dd>
    
   </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.exit-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="simpara">
   Como esta función termina el script PHP, ningún valor es devuelto.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.exit-changelog">
  <h3 class="title">Historial de cambios</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Versión</th>
      <th>Descripción</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.4.0</td>
      <td>
       <span class="function"><strong>exit()</strong></span> es ahora una verdadera función,
       por lo tanto sigue la lógica habitual de
       <a href="language.types.type-juggling.php#language.types.type-juggling.function" class="link">manipulación de tipos</a>,
       es afectada por la declaración
       <a href="language.types.declarations.php#language.types.declarations.strict" class="link"><code class="literal">strict_types</code></a>,
       puede ser llamada con argumentos nombrados y ser utilizada
       como una <a href="functions.variable-functions.php" class="link">función variable</a>.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 examples" id="refsect1-function.exit-examples">
  <h3 class="title">Ejemplos</h3>
  <div class="example" id="example-1">
   <p><strong>Ejemplo #1 Ejemplo básico de la función <span class="function"><strong>exit()</strong></span></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">// salir del programa normalmente<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">// salir con un código de error<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>Ejemplo #2 Ejemplo de <span class="function"><strong>exit()</strong></span> con un <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 />$filename </span><span style="color: #007700">= </span><span style="color: #DD0000">'/path/to/data-file'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$file </span><span style="color: #007700">= </span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #0000BB">$filename</span><span style="color: #007700">, </span><span style="color: #DD0000">'r'</span><span style="color: #007700">)<br />    or exit(</span><span style="color: #DD0000">"no se puede abrir el archivo (</span><span style="color: #0000BB">$filename</span><span style="color: #DD0000">)"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
  <div class="example" id="example-3">
   <p><strong>Ejemplo #3 Ejemplo de ejecución de funciones de cierre y destructores de objetos</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">'Destructor : ' </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">'Cierre : ' </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">'Esto nunca será mostrado.'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>El ejemplo anterior mostrará:</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Cierre : shutdown()
Destrucción : Foo::__destruct()</pre>
</div>
   </div>
  </div>
  <div class="example" id="example-4">
   <p><strong>Ejemplo #4 <span class="function"><strong>exit()</strong></span> como instrucción</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">// salir del programa normalmente con el código de salida 0<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">Notas</h3>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="simpara">
    A partir de PHP 8.4.0, <span class="function"><strong>exit()</strong></span> era una construcción del lenguaje
    y no una función, por lo tanto no era posible llamarla utilizando
    <a href="functions.variable-functions.php" class="link">funciones variables</a>,
    o <a href="functions.arguments.php#functions.named-arguments" class="link">argumentos nombrados</a>.
   </p>
  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.exit-seealso">
  <h3 class="title">Ver también</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.register-shutdown-function.php" class="function" rel="rdfs-seeAlso">register_shutdown_function()</a> - Registra una funci&oacute;n de retrollamada para ejecuci&oacute;n al cierre</span></li>
   <li><a href="function.register-shutdown-function.php" class="link">Funciones de cierre</a></li>
   <li><a href="language.oop5.decon.php#language.oop5.decon.destructor" class="link">destructores de objetos</a></li>
  </ul>
 </div>


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