descargar - php manual
¿Cuál es la diferencia entre “include_once” y “require_once” en PHP? (4)
Esta pregunta ya tiene una respuesta aquí:
¿Cuál es la diferencia entre "include_once" y "require_once" en PHP?
include_once "connect_to_mysql.php";
require_once "connect_to_mysql.php";
¿Hay alguna diferencia entre estos?
Incluir permitirá que el script siga ejecutándose (con una advertencia) si falta el archivo.
Requerirá que se bloquee si falta.
Si está utilizando la inclusión para cosas que son 100% opcionales, entonces la inclusión seguirá funcionando y la demanda explotará.
Si incluye algo que cree que es opcional, pero alguna otra parte de su secuencia de comandos lo usa, muy por debajo de la línea, entonces su secuencia de comandos explotará allí y probablemente no tenga idea de por qué.
Esta no es una buena manera de escribir programas.
De lo contrario, no hay una diferencia entre los dos.
editar
En el uso típico, no importa si elige usar include
o require
, el 95% del tiempo.
Como tal, debe atenerse a require
(o require_once
), para decirle cuándo le falta un archivo que necesita.
Los errores que vienen de incluir archivos dentro de los archivos incluidos, dentro de los archivos incluidos, cuando falta uno arriba arriba, son realmente difíciles de rastrear.
Algunas personas prefieren include
, porque quieren usar esa "característica".
Douglas Crockford es un tipo de JavaScript / Java / C ++, en lugar de PHP, pero sugiere que las características que parecen bichos, o efectos secundarios que no se distinguen de los bichos, deben evitarse para su cordura.
Tenga en cuenta que si todo su proyecto está completamente basado en clases (o funcional) y completamente modular, entonces no debería tener mucho uso para incluir, aparte de, restablecer valores en un objeto de configuración en la inicialización de la aplicación (incluyendo administración) opciones de anulación o opciones de depuración de desarrollo) en un objeto que ya se require
d.
Como puedes imaginar, hay otras formas de hacer esto.
Y estas son solo sugerencias, pero son sugerencias de personas más inteligentes que yo, con décadas de experiencia en docenas de idiomas.
La diferencia es que require_once()
producirá un error grave en caso de error, mientras que include_once()
solo produce una advertencia.
page stop execute require_once no puede cargar el archivo requerido y, por otro lado, include_once continuará en lugar de un error en la carga, incluido el archivo.
include_once
lanzará una advertencia , pero no impedirá que PHP ejecute el resto del script.
require_once
lanzará un error e impedirá que PHP ejecute el resto del script.