<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.control-structures.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.include.php',
    1 => 'include',
    2 => 'include',
  ),
  'up' => 
  array (
    0 => 'language.control-structures.php',
    1 => 'Estructuras de Control',
  ),
  'prev' => 
  array (
    0 => 'function.require.php',
    1 => 'require',
  ),
  'next' => 
  array (
    0 => 'function.require-once.php',
    1 => 'require_once',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'language/control-structures/include.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.include" class="sect1">
 <h2 class="title">include</h2>
 <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p>
 <p class="simpara">
  La expresión de lenguaje <code class="literal">include</code> incluye y ejecuta
  el fichero especificado en argumento.
 </p>
 <p class="simpara">
  Esta documentación también se aplica a la instrucción de lenguaje
  <span class="function"><a href="function.require.php" class="function">require</a></span>.
 </p>
 <p class="simpara">
  Los ficheros se incluyen siguiendo la ruta del fichero proporcionada; si no se proporciona ninguna,
  se verificará el <a href="ini.core.php#ini.include-path" class="link">include_path</a>. Si el fichero no se encuentra en el
  <a href="ini.core.php#ini.include-path" class="link">include_path</a>,
  <code class="literal">include</code> verificará en el directorio del script llamador
  y en el directorio de trabajo actual antes de fallar. La instrucción
  <code class="literal">include</code> emitirá <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> si no puede encontrar el fichero; este comportamiento es diferente de
  <span class="function"><a href="function.require.php" class="function">require</a></span>, que emitirá <strong><code><a href="errorfunc.constants.php#constant.e-error">E_ERROR</a></code></strong>.
 </p>
 <p class="simpara">
  Tenga en cuenta que <code class="literal">include</code> y <code class="literal">require</code>
  lanzarán errores de tipo <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>, si el
  fichero no es accesible, antes de lanzar un error de tipo
  <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> o <strong><code><a href="errorfunc.constants.php#constant.e-error">E_ERROR</a></code></strong>, respectivamente.
 </p>
 <p class="simpara">
  Si se define una ruta, absoluta (comenzando con una letra de unidad seguida
  de <code class="literal">\</code> para Windows, o <code class="literal">/</code> para Unix/Linux)
  o relativa (comenzando con <code class="literal">.</code> o <code class="literal">..</code>), el <a href="ini.core.php#ini.include-path" class="link">include_path</a>
  será ignorado. Por ejemplo, si un nombre de fichero comienza con <code class="literal">../</code>,
  PHP buscará en el directorio padre para encontrar el fichero especificado.
 </p>
 <p class="simpara">
  Para más información sobre cómo PHP maneja los ficheros incluidos así
  como la ruta de inclusión, consulte la documentación relativa
  al <a href="ini.core.php#ini.include-path" class="link">include_path</a>.
 </p>
 <p class="simpara">
  Cuando un fichero es incluido, el código que lo compone hereda el
  <a href="language.variables.scope.php" class="link">ámbito de las variables</a>
  de la línea donde aparece la inclusión. Todas las variables disponibles en esa
  línea en el fichero llamador estarán disponibles en el fichero llamado, a partir de ese punto. Sin embargo, todas las funciones y clases definidas en
  el fichero incluido tienen un ámbito global.
 </p>
 <p class="para">
  <div class="example" id="example-1">
   <p><strong>Ejemplo #1 Ejemplo con <code class="literal">include</code></strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">vars.php<br /><span style="color: #0000BB">&lt;?php<br /><br />$color </span><span style="color: #007700">= </span><span style="color: #DD0000">'verde'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$fruit </span><span style="color: #007700">= </span><span style="color: #DD0000">'manzana'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?&gt;<br /></span><br />test.php<br /><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"Una </span><span style="color: #0000BB">$fruit</span><span style="color: #DD0000"> </span><span style="color: #0000BB">$color</span><span style="color: #DD0000">"</span><span style="color: #007700">; </span><span style="color: #FF8000">// Una<br /><br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'vars.php'</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #DD0000">"Una </span><span style="color: #0000BB">$fruit</span><span style="color: #DD0000"> </span><span style="color: #0000BB">$color</span><span style="color: #DD0000">"</span><span style="color: #007700">; </span><span style="color: #FF8000">// Una manzana verde<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="simpara">
  Si la inclusión ocurre dentro de una función,
  el código incluido será considerado como parte de la
  función. Esto modifica el contexto de las variables accesibles.
  Una excepción a esta regla: las <a href="language.constants.magic.php" class="link">constantes mágicas</a> son analizadas
  por el analizador antes de que la inclusión ocurra.
 </p>
 <p class="para">
  <div class="example" id="example-2">
   <p><strong>Ejemplo #2 Inclusión de ficheros dentro de una funció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: #007700">function </span><span style="color: #0000BB">foo</span><span style="color: #007700">()<br />{<br />    global </span><span style="color: #0000BB">$couleur</span><span style="color: #007700">;<br /><br />    include </span><span style="color: #DD0000">'vars.php'</span><span style="color: #007700">;<br /><br />    echo </span><span style="color: #DD0000">"Una </span><span style="color: #0000BB">$fruit</span><span style="color: #DD0000"> </span><span style="color: #0000BB">$couleur</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">/* vars.php está en el contexto de foo()<br /> * por lo tanto $fruit no está disponible fuera de<br /> * esta función. $couleur sí lo está, ya que es<br /> * una variable global */<br /><br /></span><span style="color: #0000BB">foo</span><span style="color: #007700">();                      </span><span style="color: #FF8000">// Una pomme verte<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"Una </span><span style="color: #0000BB">$fruit</span><span style="color: #DD0000"> </span><span style="color: #0000BB">$couleur</span><span style="color: #DD0000">"</span><span style="color: #007700">; </span><span style="color: #FF8000">// Una  verte<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="simpara">
  Es importante señalar que cuando un fichero es incluido,
  los errores de análisis aparecerán en HTML al
  principio del fichero, y el análisis del fichero
  padre no será interrumpido. Por esta razón, el código
  que está en el fichero debe ser colocado entre
  <a href="language.basic-syntax.phpmode.php" class="link">las etiquetas
  habituales de PHP</a>.
 </p>
 <p class="simpara">
  Si los <a href="filesystem.configuration.php#ini.allow-url-include" class="link">gestores de inclusión de URL</a>
  están activados en PHP,
  puede localizar el fichero con una URL (vía HTTP o
  bien con un gestor adecuado: ver <a href="wrappers.php" class="xref">Protocolos y Envolturas soportados</a>
  para una lista de protocolos), en lugar de una simple ruta
  local. Si el servidor remoto interpreta el fichero como código
  PHP, variables pueden ser transmitidas al servidor remoto
  vía la URL y el método GET. Esto no es, estrictamente hablando,
  lo mismo que heredar el contexto de variable.
  El fichero incluido es en realidad un script ejecutado a distancia,
  y su resultado es incluido en el código actual.
 </p>
 <p class="para">
  <div class="example" id="example-3">
   <p><strong>Ejemplo #3 Utilizar la instrucción <code class="literal">include</code> vía HTTP</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">/* Este ejemplo supone que www.example.com está configurado para tratar<br /> * los ficheros .php y no los ficheros .txt. Además,<br /> * 'Work' significa aquí que las variables<br /> * $foo y $bar están disponibles en el fichero incluido<br /> */<br /><br />// No funciona: file.txt no ha sido tratado por www.example.com como PHP<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'http://www.example.com/file.txt?foo=1&amp;bar=2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// No funciona: el script busca un fichero llamado<br />// 'file.php?foo=1&amp;bar=2' en el sistema local<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'file.php?foo=1&amp;bar=2'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Funciona<br /></span><span style="color: #007700">include </span><span style="color: #DD0000">'http://www.example.com/file.php?foo=1&amp;bar=2'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <div class="warning"><strong class="warning">Advertencia</strong>
  <h1 class="title">Alerta de seguridad</h1>
  <p class="para">
   Un fichero remoto puede ser tratado en el servidor remoto
   (dependiendo de la extensión del fichero y si el servidor remoto
   ejecuta PHP o no) pero debe producir siempre un script PHP válido
   porque será tratado en el servidor local. Si el fichero del servidor
   remoto debe ser tratado en el lugar y mostrado solamente,
   <span class="function"><a href="function.readfile.php" class="function">readfile()</a></span> es una función mucho más apropiada.
   De otra manera, debería tener cuidado de asegurar el script remoto
   para que produzca un código válido y deseado.
   </p>
 </div>
 <p class="para">
  Ver también
  <a href="features.remote-files.php" class="link">trabajar con ficheros remotos</a>,
  <span class="function"><a href="function.fopen.php" class="function">fopen()</a></span> y
  <span class="function"><a href="function.file.php" class="function">file()</a></span> para información relacionada.
 </p>
 <p class="simpara">
  Manejo del retorno: <code class="literal">include</code> devuelve <code class="literal">FALSE</code> en caso
  de error y emite un aviso. Las inclusiones exitosas, incluyendo si
  son sobrescritas por el fichero incluido, devuelven
  <code class="literal">1</code>. Es posible ejecutar la estructura de lenguaje
  <span class="function"><a href="function.return.php" class="function">return</a></span> dentro de un fichero
  incluido para determinar el proceso en ese fichero, y volver
  al script que lo llamó. Además, es posible devolver valores desde ficheros incluidos. Puede tomar el valor
  desde la llamada al fichero incluido como desee desde una
  función normal. Esto no es posible, sin embargo, al incluir ficheros remotos, y esto, mientras la salida del fichero remoto no tenga
  <a href="language.basic-syntax.phpmode.php" class="link">etiquetas PHP de inicio
  y fin válidas</a> (al igual que para los ficheros locales).
  Puede declarar las variables necesarias dentro de estas etiquetas
  y serán introducidas en el lugar donde el fichero fue incluido.
 </p>
 <p class="para">
  Como <code class="literal">include</code> es una estructura de lenguaje particular,
  los paréntesis no son necesarios alrededor del argumento. Tenga cuidado
  al comparar el valor devuelto.
  <div class="example" id="example-4">
   <p><strong>Ejemplo #4 Comparación del valor devuelto de una inclusión</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: #FF8000">// No funciona, evaluado como include(('vars.php') == TRUE), es decir include('1')<br /></span><span style="color: #007700">if (include(</span><span style="color: #DD0000">'vars.php'</span><span style="color: #007700">) == </span><span style="color: #0000BB">TRUE</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">'OK'</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">// Funciona<br /></span><span style="color: #007700">if ((include </span><span style="color: #DD0000">'vars.php'</span><span style="color: #007700">) == </span><span style="color: #0000BB">TRUE</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">'OK'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="para">
  <div class="example" id="example-5">
   <p><strong>Ejemplo #5 <code class="literal">include</code> y <span class="function"><a href="function.return.php" class="function">return</a></span></strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">return.php<br /><span style="color: #0000BB">&lt;?php<br /><br />$var </span><span style="color: #007700">= </span><span style="color: #DD0000">'PHP'</span><span style="color: #007700">;<br /><br />return </span><span style="color: #0000BB">$var</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?&gt;<br /></span><br />noreturn.php<br /><span style="color: #0000BB">&lt;?php<br /><br />$var </span><span style="color: #007700">= </span><span style="color: #DD0000">'PHP'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?&gt;<br /></span><br />testreturns.php<br /><span style="color: #0000BB">&lt;?php<br /><br />$foo </span><span style="color: #007700">= include </span><span style="color: #DD0000">'return.php'</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #0000BB">$foo</span><span style="color: #007700">; </span><span style="color: #FF8000">// muestra 'PHP'<br /><br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= include </span><span style="color: #DD0000">'noreturn.php'</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #0000BB">$bar</span><span style="color: #007700">; </span><span style="color: #FF8000">// muestra 1<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="simpara">
  <code class="literal">$bar</code> tiene el valor de <code class="literal">1</code> ya que
  la inclusión fue exitosa. Tenga en cuenta la diferencia entre los dos
  ejemplos anteriores. El primero utiliza el comando
  <span class="function"><a href="function.return.php" class="function">return</a></span>
  en el fichero incluido, mientras que el segundo no lo hace.
  Si el fichero no puede ser incluido, <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> es devuelto y un error
  de nivel <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> es enviado.
 </p>
 <p class="para">
  Si hay funciones definidas en el fichero incluido, pueden ser
  utilizadas en el fichero principal si están antes del
  <span class="function"><a href="function.return.php" class="function">return</a></span> o después.
  Si el fichero es incluido dos veces, PHP emitirá un error fatal ya que las
  funciones ya han sido declaradas.
  Se recomienda utilizar <span class="function"><a href="function.include-once.php" class="function">include_once</a></span>
  en lugar de verificar si el fichero ya ha sido incluido y por lo tanto devolver
  condicionalmente la inclusión del fichero.
 </p>
 <p class="simpara">
  Otra forma de incluir un fichero PHP en una variable es capturar
  la salida utilizando las funciones de
  <a href="ref.outcontrol.php" class="link">control de salida</a> con
  <code class="literal">include</code>. Por ejemplo:
 </p>
 <p class="para">
  <div class="example" id="example-6">
   <p><strong>Ejemplo #6 Uso del buffer de salida para incluir un fichero PHP en
   una cadena</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$string </span><span style="color: #007700">= </span><span style="color: #0000BB">get_include_contents</span><span style="color: #007700">(</span><span style="color: #DD0000">'somefile.php'</span><span style="color: #007700">);<br /><br />function </span><span style="color: #0000BB">get_include_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">$filename</span><span style="color: #007700">) {<br />    if (</span><span style="color: #0000BB">is_file</span><span style="color: #007700">(</span><span style="color: #0000BB">$filename</span><span style="color: #007700">)) {<br />        </span><span style="color: #0000BB">ob_start</span><span style="color: #007700">();<br />        include </span><span style="color: #0000BB">$filename</span><span style="color: #007700">;<br />        return </span><span style="color: #0000BB">ob_get_clean</span><span style="color: #007700">();<br />    }<br />    return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </p>
 <p class="para">
  Para incluir automáticamente ficheros en sus scripts, vea también
  las opciones de configuración
  <a href="ini.core.php#ini.auto-prepend-file" class="link">auto_prepend_file</a> y
  <a href="ini.core.php#ini.auto-append-file" class="link">auto_append_file</a>
  del <var class="filename">php.ini</var>.
 </p>

 <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>

 <p class="simpara">
  Ver también
  <span class="function"><a href="function.require.php" class="function">require</a></span>,
  <span class="function"><a href="function.require-once.php" class="function">require_once</a></span>,
  <span class="function"><a href="function.include-once.php" class="function">include_once</a></span>,
  <span class="function"><a href="function.get-included-files.php" class="function">get_included_files()</a></span>,
  <span class="function"><a href="function.readfile.php" class="function">readfile()</a></span>, <span class="function"><a href="function.virtual.php" class="function">virtual()</a></span>, y
  <a href="ini.core.php#ini.include-path" class="link">include_path</a>.
 </p>
</div><?php manual_footer($setup); ?>