La sentencia include() incluye y evalúa
el archivo especificado_
Esta documentación también se aplica a la función
require()_ require() y
include() son idénticas en todos los aspectos
excepto en el modo de actuar ante un
error_ include() produce un Warning mientras que
require() produce un Error Fatal_ En otras palabras,
no dude en utilizar require() si quiere que un
fichero no encontrado cuelgue el procesamiento de la
página_ include() no se comporta de esta manera,
el script seguirá funcionando de todas maneras_ Asegurarse que
include_path este
configurado bien_
Cuando un fichero es incluido, el código que contiene hereda la
variable scope de
la linea en donde el include ocurre_ Cualquier variable disponible
en esa linea en el fichero desde donde se hace la inclusión estará
disponible en el fichero incluido a partir de ese momento_
Ejemplo 11_3_ Ejemplo básico de la funcióninclude() vars_php
<?php
$color = 'green';
$fruit = 'apple';
?>
test_php
<?php
echo "A $color $fruit"; // A
include 'vars_php';
echo "A $color $fruit"; // A green apple
?> |
|
Si la inclusión ocurre dentro de una función en el fichero donde se
incluye, todo el código contenido en el fichero incluido se
comportará como si hubiese sido definido dentro de esta función_
Ejemplo 11_4_ Incluyendo desde funciones <?php
function foo()
{
global $color;
include 'vars_php';
echo "A $color $fruit";
}
/* vars_php is in the scope of foo() so *
* $fruit is NOT available outside of this *
* scope_ $color is because we declared it *
* as global_ */
foo(); // A green apple
echo "A $color $fruit"; // A green
?> |
|
Cuando un fichero es incluido, el intérprete sale del modo
PHP y entra en modo HTML al principio del archivo referenciado, y
vuelve de nuevo al modo PHP al final_ Por esta razón,
cualquier código dentro del archivo referenciado que debiera
ser ejecutado como código PHP debe ser encerrado dentro de
etiquetas
válidas de comienzo y fin de PHP_
Si "URL fopen wrappers"
esta activada en PHP (como está en la configuración
inicial), se puede especificar el fichero que se va a incluir
usando una URL (via HTTP u otro mecanismo soportado, consultar
Apéndice I) en vez de un fichero local_ Si el
servidor destino interpreta el fichero destino como código PHP,
variables pueden ser mandadas al fichero incluido usando una
cadena URL de petición, tal como se hace con HTTP GET_ Esto no es
lo mismo que incluir un fichero y que este fichero herede las
variables del fichero padre; el script es ejecutado en el servidor
remoto y el resultado es incluido en en script local_
| Aviso |
Versiones de
PHP para Windows anteriores a 4_3_0, no soportan el
acceso remoto a archivos para esta función, no
funcionará ni activando siquiera allow_url_fopen_
|
Ejemplo 11_5_ include() a traves de HTTP <?php
/* This example assumes that www_example_com is configured to parse _php
* files and not _txt files_ Also, 'Works' here means that the variables
* $foo and $bar are available within the included file_*/
// Won't work; file_txt wasn't handled by www_example_com as PHP
include 'http://www_example_com/file_txt?foo=1&bar=2';
// Won't work; looks for a file named 'file_php?foo=1&bar=2' on the
// local filesystem_
include 'file_php?foo=1&bar=2';
// Works_
include 'http://www_example_com/file_php?foo=1&bar=2';
$foo = 1;
$bar = 2;
include 'file_txt'; // Works_
include 'file_php'; // Works_
?> |
|
Ver también
Ficheros
remotos,
fopen() y
file() para obtener información adicional_
Ya que include() y require()
son contructores especiales del lenguaje, se deben de incluir
dentro del bloque de una sentencia, si están dentro de un bloque
condicional_
Ejemplo 11_6_ include() y bloques condicionales <?php
// This is WRONG and will not work as desired_
if ($condition)
include $file;
else
include $other;
// This is CORRECT_
if ($condition) {
include $file;
} else {
include $other;
}
?> |
|
Es posible ejecutar una sentencia return dentro
de un archivo incluido para terminar el procesado de ese archivo y
volver al archivo de comandos que lo llamó_ Tambien es
posible retornar valores de ficheros incluidos_ Se puede coger el
valor de la llamada "include" como se haría con una función normal_
Nota:
En PHP3, return no puede aparecer dentro de un
bloque a menos que sea un bloque de función, en el cual
return se aplica a esa función y no al
archivo completo_
Ejemplo 11_7_ include() y return() return_php
<?php
$var = 'PHP';
return $var;
?>
noreturn_php
<?php
$var = 'PHP';
?>
testreturns_php
<?php
$foo = include 'return_php';
echo $foo; // prints 'PHP'
$bar = include 'noreturn_php';
echo $bar; // prints 1
?> |
|
$bar es igual a 1 porque la
inclusión salio bien_ Notar la diferencia entre los dos ejemplos
anteriores_ el primero usa return() dentro del
fichero incluido y el segundo no_ Otras maneras de incluir ficheros
en variables es con fopen(),
file() ó usando include()con
Funciones de control de
salida_
Nota: Puesto que esto es
una construcción del lenguaje y no una función, no puede
ser llamado usando funciones
variables
Ver también require(),
require_once(),
include_once(), readfile(),
virtual(), y include_path_