require_once, require, include, include_once, diferencias

24 marzo, 2013
Jhonnyf

En programación se acostumbra a separar el código en secciones, por ejemplo un archivo de funciones, otro de clases, etc, eso para mantener un orden además de llamar solo a los archivos de funciones o clases que realmente vamos a utilizar en ese momento. ya que cargar todas las opciones, funciones y controles de golpe cuando solo queremos ver una pagina simple que no usa nada eso es innecesaria y solo utiliza recursos del servidor.

Para anexar código de un archivo a nuestro script disponemos de 4 funciones require_once, require, include, include_once, y su traduccion literal seria: requiere_una-vez, require, incluir, incluir_una-vez, asi que más o menos imaginarás para que sirven cada una:

require() vs include()

La diferencia es que uno requiere obligatoriamente el archivo y en el otro caso es opcional, el require() te generará un warnings y un error fatal por tanto te detendrá la ejecución del codigo. mientras que con el include() solo te generará los warnings y tu script continuará, es decir, ese archivo era opcional y no afecta el funcionamiento de tu script.

require_once() vs require() o  include_once() vs include()

La diferencia principal es que las versiones _once llamán al archivo 1 sola vez, si más adelante vuelves a invocar la función con el mismo nombre de archivo simplemente ya no lo hará porque el archivo ya lo ha incluido en una linea previa.

el require() y el include() trabajan igual solo que si vuelves a llamarlo en una segunda ocasión lo volverá a incluir el codigo, eso es util si por ejemplo el archivo que quieres incluir contiene un bloque en HTML que quieres repetir, pero a su vez te puede generar un error si por ejemplo llamar a un archivo con funciones, al llamarlo por segunda vez estarias redeclarando funciones ya existentes o clases.

las versiones _once() son más pesadas y consumen más recursos, hay que utilizarlas sólo cuándo sea necesario.

Sin comentarios

Deja un comentario

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