2009-02-27 21 views

Respuesta

29

require requiere, include incluye.

Según el manual:

requieren() es idéntica a incluir(), excepto en caso de fallo se producirá un error de nivel E_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.

+0

solía ser diferente, aunque :-) – dusoft

+1

Es cierto, pero lo interesante sería ser para entender cuándo usar uno o el otro. – JDelage

0

por http://www.alt-php-faq.org/local/78/:

A diferencia de include(), require() siempre leer en el archivo de destino, incluso si la línea es nunca es ejecutada. Si desea incluir un archivo condicionalmente, use include(). La instrucción condicional no afectará a require(). Sin embargo, si la línea en la que se produce require() no se ejecuta, tampoco se ejecutará el código en el archivo de destino.

+1

La única diferencia entre include() y require() es que al producirse un error (es decir, si el archivo no se puede encontrar), require() emite un error, mientras que include() emite una advertencia. – mjs

3

La diferencia es la siguiente: include no fallará si no puede encontrar el recurso, requiere voluntad. Honestamente, es un poco tonto que exista existe, porque si estás intentando cargar un recurso, estás contando con que esté allí. Si vas a usar algo, te recomendaría usar require_once siempre, de esa manera no te encuentras con colisiones (es decir, si otra secuencia de comandos requiere el mismo archivo) y tu código siempre funciona de la manera prevista porque conoces los recursos que tienes incluidos están allí (de lo contrario está fallando).

1

Si un archivo es opcional, inclúyalo. Por ejemplo, puede tener un archivo 'breaking-news.txt' que se crea cuando hay noticias de última hora, pero no existe cuando no hay ninguna. Podría incluirse sin que se rompa el guión si no hay noticias de última hora.

Si el archivo es necesario para que el resto de la secuencia de comandos funcione correctamente, solicítelo.

4

Como han dicho otros, si "require" no encuentra el archivo que está buscando, la ejecución se detendrá. Si include no archiva el archivo que está buscando, la ejecución continuará.

En general, require debe utilizarse al importar bibliotecas de código/clase/función. Si intentas invocar una función, instanciar una clase, etc. y las definiciones no están allí, sucederán cosas malas. Por lo tanto, usted requiere php para incluir su archivo, y si no puede, se detiene.

Use include cuando usa PHP para generar contenido o ejecutar código que, si no se ejecuta, no necesariamente destruirá el código posterior. El ejemplo clásico de esto es implementar una Vista en un marco Modelo/Vista/Controlador. Nada nuevo debe definirse en una vista, ni debe cambiar el estado de la aplicación. Por lo tanto, está bien usar include, porque una falla no romperá otras cosas que suceden en la aplicación.

Una pequeña tangente. Existe una gran cantidad de información contradictoria y de información errónea sobre el rendimiento de incluir vs. requerir vs. requerir_una vez incluir_una vez. Se comportan de manera radicalmente diferente bajo diferentes situaciones/casos de uso. Este es uno de esos lugares donde realmente necesita comparar la diferencia en su propia aplicación.

+0

Gracias por proporcionar el caso de uso para incluir. No pude entender cuándo usarlo antes. – JDelage

0

En un lenguaje sencillo, si utilizamos requieren, debemos asegurarnos de que el archivo existe en esa época, mientras que no es necesario en caso de incluir.Pero intenta asegurarte de que el archivo exista.

-1

Require() y include() son lo mismo con respecto a la gestión de fallas . Sin embargo, require() resulta en un error fatal y no permite el procesamiento de la página. es decir, incluir permitirá que la secuencia de comandos continúe.

+0

tanto 'include' como' require' son ** construcciones de lenguaje **. Ellos no usan paréntesis. – Jimbo

0
Include and require are identical, except upon failure: 

require will produce a fatal error (E_COMPILE_ERROR) and stop the script 
include will only produce a warning (E_WARNING) and the script will continue 

Se puede entender con examle incluyen ("prueba.php"); echo "\ nEsta línea se imprimirá";

Salida: Warning: include (prueba.php): no pudo abrir la secuencia: No existe el fichero o directorio en/var/www/........ Esta línea se imprime

requieren ("test.php"); echo "\ nEsta línea se imprimirá"; Advertencia: require (test.php): no se pudo abrir la secuencia: Ningún archivo o directorio en/var/www/....

Cuestiones relacionadas