<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.var.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.unset.php',
    1 => 'unset',
    2 => 'unset destruye una variable',
  ),
  'up' => 
  array (
    0 => 'ref.var.php',
    1 => 'Funciones de manejo de variables',
  ),
  'prev' => 
  array (
    0 => 'function.unserialize.php',
    1 => 'unserialize',
  ),
  'next' => 
  array (
    0 => 'function.var-dump.php',
    1 => 'var_dump',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/var/functions/unset.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.unset" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">unset</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">unset</span> &mdash; <span class="dc-title"><span class="function"><strong>unset()</strong></span> destruye una variable</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.unset-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>unset</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$var</code></span>, <span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">...$vars</code></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>unset()</strong></span> destruye la o las variables cuyo
   nombre ha sido pasado como argumento <code class="parameter">var</code>.
  </p>
  <p class="para">
   El comportamiento de <span class="function"><strong>unset()</strong></span> dentro de una
   función puede variar según el tipo de variable que se desee
   destruir.
  </p>
  <p class="para">
   Si una variable global es destruida con <span class="function"><strong>unset()</strong></span>
   desde una función, solo la variable local será destruida. La
   variable global mantendrá el valor adquirido antes de la llamada a
   <span class="function"><strong>unset()</strong></span>.
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Utilización de <span class="function"><strong>unset()</strong></span></strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">destroy_foo</span><span style="color: #007700">()<br />{<br />    global </span><span style="color: #0000BB">$foo</span><span style="color: #007700">;<br />    unset(</span><span style="color: #0000BB">$foo</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">$foo </span><span style="color: #007700">= </span><span style="color: #DD0000">'bar'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">destroy_foo</span><span style="color: #007700">();<br />echo </span><span style="color: #0000BB">$foo</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   Para destruir una variable global dentro de una
   función, se puede utilizar el array
   <var class="varname"><a href="reserved.variables.globals.php" class="classname">$GLOBALS</a></var>:
   <div class="example" id="example-2">
    <p><strong>Ejemplo #2 <span class="function"><strong>unset()</strong></span> una variable global</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">foo</span><span style="color: #007700">()<br />{<br />    unset(</span><span style="color: #0000BB">$GLOBALS</span><span style="color: #007700">[</span><span style="color: #DD0000">'bar'</span><span style="color: #007700">]);<br />}<br /><br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= </span><span style="color: #DD0000">"truc"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">foo</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   Si una variable que es pasada por referencia es destruida dentro
   de una función, solo la variable local será
   destruida. La variable global conservará el mismo valor
   que tenía antes de la llamada a <span class="function"><strong>unset()</strong></span>.
   <div class="example" id="example-3">
    <p><strong>Ejemplo #3 <span class="function"><strong>unset()</strong></span> con referencia</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">foo</span><span style="color: #007700">(&amp;</span><span style="color: #0000BB">$bar</span><span style="color: #007700">)<br />{<br />    unset(</span><span style="color: #0000BB">$bar</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">$bar </span><span style="color: #007700">= </span><span style="color: #DD0000">"blah"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= </span><span style="color: #DD0000">'truc'</span><span style="color: #007700">;<br />echo </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$bar</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">foo</span><span style="color: #007700">(</span><span style="color: #0000BB">$bar</span><span style="color: #007700">);<br />echo </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$bar</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   Si una variable estática es destruida dentro de una función,
   <span class="function"><strong>unset()</strong></span> destruirá la variable solo en el
   contexto del resto de la función. Las llamadas siguientes restaurarán
   el valor anterior de la variable.
   <div class="example" id="example-4">
    <p><strong>Ejemplo #4 <span class="function"><strong>unset()</strong></span> con variable estática</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">foo</span><span style="color: #007700">()<br />{<br />    static </span><span style="color: #0000BB">$bar</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">$bar</span><span style="color: #007700">++;<br />    echo </span><span style="color: #DD0000">"Antes de unset: </span><span style="color: #0000BB">$bar</span><span style="color: #DD0000">, "</span><span style="color: #007700">;<br />    unset(</span><span style="color: #0000BB">$bar</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">$bar </span><span style="color: #007700">= </span><span style="color: #0000BB">23</span><span style="color: #007700">;<br />    echo </span><span style="color: #DD0000">"después de unset: </span><span style="color: #0000BB">$bar</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">foo</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">foo</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">foo</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.unset-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">var</code></dt>
     <dd>
      <p class="para">
       La variable a destruir.
      </p>
     </dd>
    
    
     <dt><code class="parameter">vars</code></dt>
     <dd>
      <p class="para">
       Variables adicionales.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.unset-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   No se retorna ningún valor.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.unset-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-5">
    <p><strong>Ejemplo #5 Ejemplo con <span class="function"><strong>unset()</strong></span></strong></p>
    <div class="example-contents">
<div class="annotation-non-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Destrucción de una sola variable<br /></span><span style="color: #007700">unset(</span><span style="color: #0000BB">$foo</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Destrucción de un elemento de array<br /></span><span style="color: #007700">unset(</span><span style="color: #0000BB">$bar</span><span style="color: #007700">[</span><span style="color: #DD0000">'quux'</span><span style="color: #007700">]);<br /><br /></span><span style="color: #FF8000">// Destrucción de múltiples variables<br /></span><span style="color: #007700">unset(</span><span style="color: #0000BB">$foo1</span><span style="color: #007700">, </span><span style="color: #0000BB">$foo2</span><span style="color: #007700">, </span><span style="color: #0000BB">$foo3</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.unset-notes">
  <h3 class="title">Notas</h3>
  <blockquote class="note"><p><strong class="note">Nota</strong>: <span class="simpara">Como esto es una estructura
    del lenguaje, y no una función, no es posible llamarla
    con las <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>.
</span></p></blockquote>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="para">
    Es posible destruir cualquier propiedad
    visible en el contexto actual.
   </p>
   <p class="para">
     Si está declarado,
     <a href="language.oop5.overloading.php#object.get" class="link">__get()</a>
     es llamado al acceder a una propiedad no definida, y
     <a href="language.oop5.overloading.php#object.set" class="link">__set()</a>
     es llamado al definir una propiedad no definida.
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="para">
    No es posible destruir la variable especial
    <code class="literal">$this</code> dentro de un método de un
    objeto.
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="para">
    Al utilizar esta función en propiedades de objeto
    inaccesibles, el método mágico
    <a href="language.oop5.overloading.php#object.unset" class="link">__unset</a>
    será llamado, si existe.
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.unset-seealso">
  <h3 class="title">Ver también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.isset.php" class="function" rel="rdfs-seeAlso">isset()</a> - Determina si una variable est&aacute; declarada y es diferente de null</span></li>
    <li><a href="language.oop5.overloading.php#object.unset" class="link">__unset()</a></li>
    <li><span class="function"><a href="function.empty.php" class="function" rel="rdfs-seeAlso">empty()</a> - Determina si una variable est&aacute; vac&iacute;a</span></li>
    <li><span class="function"><a href="function.array-splice.php" class="function" rel="rdfs-seeAlso">array_splice()</a> - Elimina y reemplaza una porci&oacute;n de array</span></li>
    <li><a href="language.types.null.php#language.types.null.casting" class="link">(unset) casting</a></li>
   </ul>
  </p>
 </div>


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