Diferencias entre include, include_once, require y require_once


Vamos con pequeños fragmentos de PHP, una nueva sección para comentar pequeñas dudas sobre PHP, trucos y mejoras sobre este lenguaje. Para comenzar vamos a ver las diferencias entre estas cuatro funciones que PHP usa para importar a una página otra página web, donde por ejemplo podríamos tener almacenadas las funciones para el correcto funcionamiento de la web.

Hay que tener claro cuando usar include(), include_once(), require() o require_once(), sobre todo hay que tener en cuenta si queremos obligatoriedad en lo que incluimos y si queremos o no repetir sentencias, por ahí van los tiros. Vamos con ello:

include():

//incluye el fichero functions.php
include("functions.php");

Esta función nos permite incluir el archivo tantas veces como lo pidamos, sin importar que esté incluido con anterioridad o no, simplemente evalúa el archivo y lo incluye en nuestro documento. En caso de que el archivo no exista, nos devolverá un warning pero el script continuará ejecutándose.

include_once():

//evalúa si functions.php está incluido, si no lo está lo incluye
include_once("functions.php");

La diferencia respecto a la función include() y tal y como muestra su nombre, evaluará si el archivo ya ha sido incluido y si es así, no volverá a incluirlo, es decir, se incluye una única vez. En el caso de error por no encontrar el archivo se comporta igual que include().

require():

//incluye y obliga a que functions.php esté incluido
require("functions.php");

Posee el mismo comportamiento que include(), la única diferencia reside en el caso de error, pues cuando usamos require(), si el archivo no existe lanza un error fatal que para la ejecucción del script.

require_once():

//evalúa y obliga a estar incluido, si lo está, no hace nada
require_once("functions.php");

Al igual que ocurre entre include() y include_once(), el comportamiento de require_once() es el mismo que el de require(), tan sólo que el primero evalúa si el archivo ya ha sido incluido y si es así, no vuelve a incluirlo de nuevo. El tratamiento del error es igual al que realiza require().


5 comentarios en “Diferencias entre include, include_once, require y require_once

  1. Diferencias entre get y post | Blog de Alberto GM

    […] Te puede interesar: Diferencias entre include y require […]

  2. Armando

    Excelente material, me sirvio de mucho! =)

  3. Alberto

    Gracias por el aporte, resolvió mi duda

  4. Santiago Medina

    Una duda, cuando dicen “incluir el archivo” ¿A qué se refieren exactamente?

    1. alberto

      Que añade la referencia del archivo y por lo tanto todo el contenido de este es accesible desde donde se llame.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *