¿Require o Include en PHP? Diferencias reales con ejemplos claros

Cuando desarrollas en PHP, llega un momento en el que necesitas dividir tu proyecto en varios archivos: funciones, clases, configuraciones, helpers, etc. Para que todo funcione correctamente, PHP ofrece dos construcciones fundamentales: require e include.
Aunque parecen similares, no se comportan igual, especialmente ante errores… y entender esa diferencia puede evitarte horas de depuración.

👉 Si estás aprendiendo POO en PHP, también te recomiendo leer:
➡️ Modificadores de acceso en PHP
➡️ Clases y objetos explicados con ejemplos
➡️ Métodos estáticos en PHP

¿Qué es require en PHP?

require se utiliza para incluir y evaluar un archivo PHP en tiempo de ejecución.
La característica más importante es:

❌ Si el archivo NO se encuentra, produce un error fatal y detiene el script.

Esto lo convierte en la opción ideal cuando el archivo es absolutamente necesario para que la aplicación funcione.

¿Qué es include en PHP?

A diferencia de require, el comportamiento ante errores cambia:

⚠️ Si el archivo NO se encuentra, solo muestra una advertencia y el script continúa ejecutándose.

Por eso se usa cuando el archivo es opcional.

Supongamos que tienes un archivo llamado «utilidades.php» que contiene una función de utilidad:

Y luego, tienes un archivo principal llamado «index.php» que utiliza la función de utilidad definida en «utilidades.php»:

En este ejemplo, el archivo «index.php» utiliza require para incluir el archivo «utilidades.php» que contiene la función sumar(). Luego, «index.php» llama a la función sumar() para sumar dos números e imprime el resultado. La función sumar() definida en «utilidades.php» es accesible en «index.php» después de usar require para incluir el archivo «utilidades.php».

Require vs Include: diferencias claras

Característicarequireinclude
Si el archivo no existe❌ Error fatal⚠️ Advertencia
Continuación del scriptSe detieneContinúa
Archivo crítico✔️ Sí❌ No
Comportamiento recomendadoConfigs, clases, funciones esencialesPlantillas, mensajes, módulos opcionales

En resumen, la principal diferencia práctica entre require y include radica en la manera en que manejan los errores.

Supongamos que tienes un archivo llamado «utilidades.php» que contiene una función de utilidad:


Y luego, tienes un archivo principal llamado «index.php» que utiliza la función de utilidad definida en «utilidades.php» mediante la instrucción include:

En este ejemplo, el archivo «index.php» utiliza include para incluir el archivo «utilidades.php» que contiene la función restar(). Luego, «index.php» llama a la función restar() para restar dos números e imprime el resultado. La función restar() definida en «utilidades.php» es accesible en «index.php» después de usar include para incluir el archivo «utilidades.php».

Variaciones: require_once e include_once

Variaciones: require_once e include_once

PHP incluye versiones especiales que garantizan que el archivo solo se cargue una vez:

🔁 require_once

Ideal para:

  • Archivos con clases
  • Archivos con funciones
  • Configuraciones globales

Evita errores como «Cannot redeclare function…»

🔁 include_once

Útil cuando un archivo opcional podría cargarse varias veces (por ejemplo partes de layout).

Mejores prácticas al usar require e include

✔️ Usa require o require_once cuando el archivo sea obligatorio (clases, funciones globales, config).
✔️ Usa include para elementos no críticos (plantillas, banners, archivos secundarios).
✔️ Evitá la duplicación usando siempre once cuando una función o clase podría cargarse más de una vez.
✔️ Organizá tu proyecto separando lógica, vistas, configuraciones y clases.
✔️ Mantené rutas relativas claras usando __DIR__ para evitar errores difíciles de rastrear.

Conclusión

La elección entre require, include, y sus variantes once depende del rol del archivo dentro del sistema.
Si es fundamental para que el script funcione, usá require.
Si es opcional, include.
Si querés evitar duplicaciones, usá las versiones once.

Comprender estas diferencias te permitirá desarrollar aplicaciones PHP más limpias, organizadas y resistentes a errores.


Deja un comentario

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