Diferencias entre Include() y Require() y que es “once” en php

He visto que muchos programadores usan include y require pero no saben la diferencia entre ellos, incluso vi algunos usar include_once porque se lo vieron a otro. Si aun no sabes la diferencia entre estas funciones es mejor que termines de leer este artículo, sera corto y directo (cuela?).

Include: Esto lo que hace es incluir un archivo y en el caso que este no exista, permite al script seguir corriendo dando una advertencia de que el archivo falta.

Require: Con esta función incluiremos archivos que son necesarios para que nuestro script funcione y en el caso de que no exista el script deja de correr en ese mismo momento.

Ahora también tenemos include_once y require_once, la función del “once” es para que se pueda incluir una sola vez el archivo y si por equivocación lo incluimos de nuevo no nos lo permite.

Punto para caligari

La respuesta no es del todo completa. Lo que planteas es en base al posible resultado en caso de fallo.

El “require” se procesa en tiempo de preprocesado antes de arrancar el script (por eso exige que exista el fichero requerido).

El “include” se procesa en tiempo de ejecución cuando se llega al punto de programa con la instrucción. “include” sólo da error si no existe el fichero en tiempo de ejecución y el flujo del programa pasa por él.

No se pude usar “require” si el nombre del fichero se calcula en función de variables. Igualmente, si se usan parámetros de entrada al fichero (sí, antes se usaba mucho 😉 entonces la única posibilidad es “include”.

Las versiones “_once” vinieron como una evolución cuando PHP dejó de ser un procesador de código incrustado en HTML. Como su nombre dice, evita que los ficheros se carguen más de una vez.

Por rapidez en la ejecución siempre recomiendo el uso de include (en la versiones “_once”), salvo para casos complejos que dan error (de algo no declarado en el código) al intentar ejecutar el script.

2 comentarios en “Diferencias entre Include() y Require() y que es “once” en php

  1. La respuesta no es del todo completa. Lo que planteas es en base al posible resultado en caso de fallo.

    El “require” se procesa en tiempo de preprocesado antes de arrancar el script (por eso exige que exista el fichero requerido).

    El “include” se procesa en tiempo de ejecución cuando se llega al punto de programa con la instrucción. “include” sólo da error si no existe el fichero en tiempo de ejecución y el flujo del programa pasa por él.

    No se pude usar “require” si el nombre del fichero se calcula en función de variables. Igualmente, si se usan parámetros de entrada al fichero (sí, antes se usaba mucho 😉 entonces la única posibilidad es “include”.

    Las versiones “_once” vinieron como una evolución cuando PHP dejó de ser un procesador de código incrustado en HTML. Como su nombre dice, evita que los ficheros se carguen más de una vez.

    Por rapidez en la ejecución siempre recomiendo el uso de include (en la versiones “_once”), salvo para casos complejos que dan error (de algo no declarado en el código) al intentar ejecutar el script.

    Espero haber aportado un poco más de luz 🙂

Deja un comentario

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