Include(), include_once() VS require(), require_once()

Publicado por Yoné Rocha en promineostudios.com

PHP ofrece cuatro declaraciones para insertar código de un archivo externo en nuestro archivo fuente:

Cualquiera de estas declaraciones es sustituida por el código del archivo que se invoca. Hasta ahí todos los que están acostumbrados a desarrollar en PHP llegan, el problema viene cuando no sabes donde se debe usar una u otro tipo de declaración, es eso lo que vamos a intentar aclarar en este artículo, las diferencias entre las declaraciones de inclusión.

La declaración require() sustituye el código antes de que se ejecute el script, mientras que con include() la sustitución se realiza en tiempo de ejecución. Una gran diferencia pero no la única. Si usas include() e intentas incluir, valga de redundancia, un archivo que no existe te devolverá un warning y el script se seguirá ejecutando. Con require() en caso de no encontrar el archivo que se requiere te devolverá un error fatal y la ejecución del script se detendrá.

En mis proyectos suelo usar require() para el núcleo de la aplicación que lleva el peso de toda la lógica, así me aseguro que si por alguna razón no se incluye un archivo no se seguirá ejecutando, evitando de esta manera fallos más importantes. Para incluir archivos html como un pie de página si uso include(), ya que si estos archivos no se cargan no impide el correcto funcionamiento de la aplicación.

Tanto require_once() como include_once() funcionan de la misma manera que sus homónimos nombrados anteriormente, con una única salvedad. Aseguran que el código del archivo es agregado una sola vez, evitando redeclaraciones de variables o funciones. Hay que tener en cuenta que require_once e include_once son más pesadas de procesar que require e include, por lo que debemos usarlas con prudencia.

Referencias: Ali Hartono's Diary | nachox