<?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.define.php',
    1 => 'define',
    2 => 'Define una constante',
  ),
  'up' => 
  array (
    0 => 'ref.misc.php',
    1 => 'Funciones Varias',
  ),
  'prev' => 
  array (
    0 => 'function.constant.php',
    1 => 'constant',
  ),
  'next' => 
  array (
    0 => 'function.defined.php',
    1 => 'defined',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/misc/functions/define.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

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

 </div>

 <div class="refsect1 description" id="refsect1-function.define-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">function</span> <span class="methodname"><strong>define</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$constant_name</code></span>, <span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$value</code></span>, <span class="methodparam"><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> <code class="parameter">$case_insensitive</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong></span></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="para rdfs-comment">
   Define una constante durante la ejecución.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.define-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">constant_name</code></dt>
     <dd>
      <p class="para">
       El nombre de la constante.
      </p>
      <blockquote class="note"><p><strong class="note">Nota</strong>: 
       <p class="para">
        Es posible definir con <span class="function"><strong>define()</strong></span> constantes
        con nombres reservados o incluso inválidos, donde sus valores pueden (solo)
        ser recuperados con la función <span class="function"><a href="function.constant.php" class="function">constant()</a></span>.
        Sin embargo, hacer esto no se recomienda.
       </p>
       <p class="simpara">
        <span class="function"><strong>define()</strong></span> toma el nombre como un
        <span class="type"><a href="language.types.string.php" class="type string">string</a></span> ordinario y no lo resuelve con respecto al
        <a href="language.namespaces.dynamic.php" class="link">espacio de nombres</a>
        actual.
        Dentro de <code class="literal">namespace Mi\Espacio;</code>,
        <code class="literal">define(&#039;MICONSTANTE&#039;, 1)</code> define
        <code class="literal">MICONSTANTE</code> en el espacio de nombres global,
        silenciosamente y sin error.
        Para situar la constante en un espacio de nombres, el espacio de nombres
        debe formar parte del nombre, escrito sin un separador de espacio de
        nombres inicial, como en
        <code class="literal">define(&#039;Mi\Espacio\MICONSTANTE&#039;, 1)</code> o
        <code class="literal">define(__NAMESPACE__ . &#039;\MICONSTANTE&#039;, 1)</code>.
        A diferencia de <span class="function"><a href="function.defined.php" class="function">defined()</a></span> y
        <span class="function"><a href="function.constant.php" class="function">constant()</a></span>, <span class="function"><strong>define()</strong></span> no elimina
        un separador inicial:
        <code class="literal">define(&#039;\Mi\Espacio\MICONSTANTE&#039;, 1)</code> devuelve <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>
        pero crea una constante que nunca puede ser recuperada.
        Como el nombre es una cadena simple, los alias introducidos por
        sentencias <code class="literal">use</code> no se aplican a él.
        En una cadena entre comillas dobles, los separadores de espacio de
        nombres deben escaparse, como en
        <code class="literal">&quot;Mi\\Espacio\\MICONSTANTE&quot;</code>.
       </p>
      </p></blockquote>
     </dd>
    
    
     <dt><code class="parameter">value</code></dt>
     <dd>
      <p class="para">
       El valor de la constante.
      </p>
      <div class="warning"><strong class="warning">Advertencia</strong>
       <p class="para">
        Aunque es técnicamente posible definir constantes de tipo
        <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>, esto se desaconseja y puede causar comportamientos inesperados.
       </p>
      </div>
     </dd>
    
    
     <dt><code class="parameter">case_insensitive</code></dt>
     <dd>
      <p class="para">
       Si es <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, el nombre de la constante será insensible a mayúsculas/minúsculas:
       <code class="literal">CONSTANT</code> y <code class="literal">Constant</code>
       representan valores idénticos.
      </p>
      <div class="warning"><strong class="warning">Advertencia</strong>
       <p class="simpara">
        Definir constantes insensibles a mayúsculas/minúsculas está deprecado a partir de PHP 7.3.0.
        A partir de PHP 8.0.0, solo <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> es un valor aceptable,
        pasar <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> producirá una advertencia.
       </p>
      </div>
      <blockquote class="note"><p><strong class="note">Nota</strong>: 
       <p class="para">
        Las constantes insensibles a mayúsculas/minúsculas se almacenan en minúsculas.
       </p>
      </p></blockquote>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.define-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   Esta función retorna <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> en caso de éxito o <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> si ocurre un error.
  </p>
 </div>


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

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.1.0</td>
       <td>
        <code class="parameter">value</code> ahora puede ser un objeto.
       </td>
      </tr>

      <tr>
       <td>8.0.0</td>
       <td>
        Pasar <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> a <code class="parameter">case_insensitive</code> ahora emite una <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>.
        Pasar <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> sigue siendo permitido.
       </td>
      </tr>

      <tr>
       <td>7.3.0</td>
       <td>
        <code class="parameter">case_insensitive</code> está deprecado y será eliminado en la versión 8.0.0.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.define-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Definición de una constante</strong></p>
    <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
define</span><span style="color: #007700">(</span><span style="color: #DD0000">"CONSTANT"</span><span style="color: #007700">, </span><span style="color: #DD0000">"Hola mundo."</span><span style="color: #007700">);
echo </span><span style="color: #0000BB">CONSTANT</span><span style="color: #007700">; </span><span style="color: #FF8000">// muestra "Hola mundo."
</span><span style="color: #007700">echo </span><span style="color: #0000BB">Constant</span><span style="color: #007700">; </span><span style="color: #FF8000">// muestra "Constant" y emite una advertencia

</span><span style="color: #0000BB">define</span><span style="color: #007700">(</span><span style="color: #DD0000">"GREETING"</span><span style="color: #007700">, </span><span style="color: #DD0000">"Hola tú."</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">);
echo </span><span style="color: #0000BB">GREETING</span><span style="color: #007700">; </span><span style="color: #FF8000">// muestra "Hola tú."
</span><span style="color: #007700">echo </span><span style="color: #0000BB">Greeting</span><span style="color: #007700">; </span><span style="color: #FF8000">// muestra "Hola tú."

// Funciona desde PHP 7
</span><span style="color: #0000BB">define</span><span style="color: #007700">(</span><span style="color: #DD0000">'ANIMALS'</span><span style="color: #007700">, array(
    </span><span style="color: #DD0000">'perro'</span><span style="color: #007700">,
    </span><span style="color: #DD0000">'gato'</span><span style="color: #007700">,
    </span><span style="color: #DD0000">'aves'
</span><span style="color: #007700">));
echo </span><span style="color: #0000BB">ANIMALS</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]; </span><span style="color: #FF8000">// muestra "gato"

</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
    </div>

   </div>
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Ejemplo #2 Constantes con Nombres Reservados</strong></p>
    <div class="example-contents"><p>
     Este ejemplo ilustra la <em>posibilidad</em> de definir una
     constante con el mismo nombre que una
     <a href="language.constants.magic.php" class="link">constante mágica</a>.
     Dado que el comportamiento resultante es confuso, esta práctica
     no se recomienda.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">defined</span><span style="color: #007700">(</span><span style="color: #DD0000">'__LINE__'</span><span style="color: #007700">));
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">define</span><span style="color: #007700">(</span><span style="color: #DD0000">'__LINE__'</span><span style="color: #007700">, </span><span style="color: #DD0000">'test'</span><span style="color: #007700">));
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">constant</span><span style="color: #007700">(</span><span style="color: #DD0000">'__LINE__'</span><span style="color: #007700">));
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">__LINE__</span><span style="color: #007700">);
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
    </div>

   <div class="example-contents"><p>El ejemplo anterior mostrará:</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">bool(false)
bool(true)
string(4) &quot;test&quot;
int(5)</pre>
</div>
   </div>
   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.define-seealso">
  <h3 class="title">Véase también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.defined.php" class="function" rel="rdfs-seeAlso">defined()</a> - Verifica si una constante con el nombre dado existe</span></li>
    <li><span class="function"><a href="function.constant.php" class="function" rel="rdfs-seeAlso">constant()</a> - Retorna el valor de una constante</span></li>
    <li>La sección sobre las <a href="language.constants.php" class="link">constantes</a></li>
   </ul>
  </p>
 </div>


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