código

Diferencia entre require, require_once, include, include_once en PHP

En PHP existen dos métodos para importar ficheros en otros ficheros, son muy utilizados cuando se requiere trocear el código en diferentes archivos.

Estas funciones son include() y require()

Include()
inserta en nuestro fichero el contenido de otro archivo, en caso de que dicho archivo no exista o tenga errores en su interior nuestro programa mostrará un warning pero seguirá funcionando.

Require()
Funciona de manera similar a include, pero en este caso, si el archivo no existe o contiene errores, se cortará la ejecución del script y obtendremos un fatal error en el log.

Include_once() y Require_once()

Funcionan exactamente de la misma forma que las anteriores salvo que impiden la carga de un mismo fichero varias veces.

Los archivos son incluidos con base en la ruta de acceso dada o, si ninguna es dada, se verificará en el propio directorio del script que hace el llamado y en el directorio de trabajo actual, antes de fallar.

Por ejemplo, si un nombre de archivo comienza con ../, el interprete buscará en el directorio padre para encontrar el archivo solicitado.

Cuando se incluye un archivo, el código que contiene hereda el ámbito de las variables de la línea en la cual ocurre la inclusión. Cualquier variable disponible en esa línea del archivo que hace el llamado, estará disponible en el archivo llamado, desde ese punto en adelante. Sin embargo, todas las funciones y clases definidas en el archivo incluido tienen el ámbito global.

Conclusión:

Podemos pensar en utilizar include cuando el archivo a introducir no sea determinante respecto al funcionamiento de nuestro programa. Require cuando dicho archivo sea indispensables para el correcto funcionamiento de nuestro programa.

Finalmente se debe utilizar las variantes con _once cuando nuestro programa tenga unas dimensiones considerables y pueda darse el caso de que la inclusión del fichero se produzca varias veces. Estas últimas variantes hay que usarlas solo en casos excepcionales ya que consumen más recursos que las anteriores.

Ejemplo #1 Ejemplo básico de include();

vars.php

<?php
$color = 'verde';
$fruta = 'manzana';
?>

test.php

<?php
echo "Una $fruta $color"; // Una
include 'vars.php';
echo "Una $fruta $color"; // Una manzana verde
?>

Ejemplo #2 Incluyendo dentro de funciones.

<?php

function foo()
{
    global $color;
    include 'vars.php';
    echo "Una $fruta $micolor";
}

/* vars.php está en el ámbito de foo() así que *
* $fruta NO está disponible por fuera de éste  *
* ámbito. $color sí está porque fue declarado *
* como global.                                 */

foo();                      // Una manzana verde
echo "Una $fruta $micolor";   // Una verde

?>

Share :