php - incluir - require html
Diferencia entre "incluir" y "requerir" en php (7)
Como otros señalaron, la única diferencia es que requerir arroja un error fatal, e incluir - una advertencia atrapable. En cuanto a cuál usar, mi consejo es que se quede incluido. ¿Por qué? porque puede detectar una advertencia y producir un comentario significativo para los usuarios finales. Considerar
// Example 1.
// users see a standard php error message or a blank screen
// depending on your display_errors setting
require ''not_there'';
// Example 2.
// users see a meaningful error message
try {
include ''not_there'';
} catch(Exception $e) {
echo "something strange happened!";
}
NB: para que funcione el ejemplo 2, debe instalar un manejador de errores a excepciones, como se describe aquí http://www.php.net/manual/en/class.errorexception.php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");
¿Hay alguna diferencia entre ellos? ¿Usarlos es una cuestión de preferencia? ¿El uso de uno sobre el otro produce alguna ventaja? ¿Qué es mejor para la seguridad?
En caso de Incluir el programa, no finalizará y mostrará una advertencia en el navegador. Por otro lado, Exigir programa terminará y mostrará un error fatal en caso de que no se encuentre el archivo.
La diferencia clave entre require()
e include()
es que si require()
un archivo que no se puede cargar (por ejemplo, si no está allí), genera un error fatal que detendrá la ejecución de la página por completo , y no se generará más producción. Por otro lado, si include()
un archivo que no se puede cargar, esto simplemente generará una advertencia y continuará construyendo la página.
Use include
si no le molesta que su script continúe sin cargar el archivo (en caso de que no exista, etc.) y usted puede (aunque no debería) vivir con un mensaje de advertencia de advertencia apareciendo.
El uso de require
significa que el script se detendrá si no puede cargar el archivo especificado y arroja un error Fatal.
require
arrojará un error fatal de PHP si el archivo no se puede cargar. (La ejecución se detiene)
include
produce una advertencia si el archivo no se puede cargar. (La ejecución continúa)
Aquí hay una bonita ilustración de incluir y requerir diferencia :
De: Diferencia requiere vs. incluir php (por Robert; Nov 2012)
Encuentra las diferencias explicadas en el manual detallado de PHP en la página de require
:
require
es idéntico parainclude
excepto en caso de error también producirá un error de nivelE_COMPILE_ERROR
fatal. En otras palabras, detendrá la secuencia de comandos mientras que include solo emite una advertencia (E_WARNING
) que permite que la secuencia de comandos continúe.
Ver la respuesta de @ efritz para un ejemplo
<?PHP
echo "Firstline";
include(''classes/connection.php'');
echo "I will run if include but not on Require";
?>
Un ejemplo práctico muy simple con código. Se mostrará el primer eco. No importa si usa include o require porque se ejecuta antes de incluir o requerido.
Para verificar el resultado, en la segunda línea de un código, proporcione intencionalmente la ruta incorrecta al archivo o cree un error en el nombre del archivo. Por lo tanto, el segundo eco que se muestre o no dependerá totalmente de si usa require o include .
Si utiliza require, el segundo echo no se ejecutará, pero si utiliza include, no importa qué error aparezca, verá el resultado del segundo eco también.