Foros del Web » Programando para Internet » PHP »

include() v/s require()

Estas en el tema de include() v/s require() en el foro de PHP en Foros del Web. Al realizar varias paginas en HTML/PHP tengo el siguiente problema existencial. Cuando uso include() o cuando require() , se que funcionan parecido pero no tanto. ...
  #1 (permalink)  
Antiguo 06/07/2002, 20:06
 
Fecha de Ingreso: junio-2002
Mensajes: 78
Antigüedad: 21 años, 9 meses
Puntos: 0
include() v/s require()

Al realizar varias paginas en HTML/PHP tengo el siguiente problema existencial.

Cuando uso include() o cuando require() , se que funcionan parecido pero no tanto. Include() llama las variables cuando son pedidas y require() inserta todas las variables aunque no se pidan

Existe alguna receta de cuando se usa uno o el otro

:)
  #2 (permalink)  
Antiguo 06/07/2002, 20:59
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: include() v/s require()

no se realmente en que reside la razon para usar uno u otro.. de hecho me gustaria saber.. yo siempre uso include()...
pero si se una diferencia:
if($algo){
include("pagina.php");
}
este codigo solo incluye pagina.php y se cumple la condicion...
En cambio,
if($algo){
require("pagina.php")
}
la incluira de todos modos, se cumpla o no la condicion...
Saludos ;)


<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #3 (permalink)  
Antiguo 06/07/2002, 21:19
Avatar de ceronne  
Fecha de Ingreso: diciembre-2001
Ubicación: Paris
Mensajes: 990
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: include() v/s require()

y cual es mejor?
  #4 (permalink)  
Antiguo 06/07/2002, 21:28
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: include() v/s require()

no hay &quot;mejor&quot; o &quot;peor&quot;
son diferentes... seguramente en algunos casos interesa usar uno y en otros casos el otro, solo que no puedo imaginarme cuales sean esos casos
Saludos


<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #5 (permalink)  
Antiguo 06/07/2002, 21:31
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 23 años
Puntos: 0
Re: include() v/s require()

Hola, Bueno por lo lei y entendi del manual (no hace mucho, para mi no estaba claro) es que include y require funcionan practicamente igual, la diferencia esta en el reporte de errores que realiza cada funcion. O sea, si el archivo que tratas de incluir con no se encuentra, las funciones actuan diferente. &quot;include&quot; generar un Warning , mientras que require generar un Fatal error , esto es porque cuando usas require es porque el archivo es impresindible para tu aplicacion, en cambio con include, no. Eso queda a criterio de cada uno, dependiendo de la aplicacion que esten desarrollando.
Por mi parte, prefiero utilizar require_once() o include_once(), ya que son mas practicos y previenen errores al tratar de incluir un archivo 2 veces.

Espero que les haya aclarado la duda.
Saludos

<img name="Firma" src="http://www.jpw.com.ar/FirmaNok.gif" border="0" usemap="#Mapa"><map name="Mapa"><area shape="rect" coords="0,43,174,60" href="http://www.jpw.com.ar/noktemplate"></map>
  #6 (permalink)  
Antiguo 06/07/2002, 22:34
 
Fecha de Ingreso: agosto-2001
Mensajes: 315
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: include() v/s require()

Como dice el manual:

La sentencia require() se sustituye a sí misma con el archivo especificado, tal y como funciona la directiva #include de C.
La sentencia include() incluye y evalúa el archivo especificado.

A diferencia de include(), require() siempre leerá el archivo referenciado, incluso si la línea en que está no se ejecuta nunca.
include() difiere de require() en que la sentencia include se re-evalúa cada vez que se encuentra (y sólo cuando está siendo ejecutada), mientras que la sentencia require() se reemplaza por el archivo referenciado cuando se encuentra por primera vez, se vaya a evaluar el contenido del archivo o no (por ejemplo, si está dentro de una sentencia if cuya condición evaluada es falsa).



Si se quiere incluir condicionalmente un archivo, se usa include(). La sentencia conditional no afecta a require(). No obstante, si la línea en la cual aparece el require() no se ejecuta, tampoco se ejecutará el código del archivo referenciado.
Pero como dice el parrafo anterior si se lleera el contenido del archivo.

no se puede poner una sentencia require() dentro de una estructura de bucle y esperar que incluya el contenido de un archivo distinto en cada iteración. Para hacer esto, usa una sentencia include().

require() no es en realidad una función de PHP;no devuelve ningún valor; intentar leer un valor de retorno de una llamada a un require() resulta en un error del intérprete.

es posible ejecutar una sentencia return dentro de un archivo incluido con include().





  #7 (permalink)  
Antiguo 06/07/2002, 22:53
 
Fecha de Ingreso: agosto-2001
Mensajes: 315
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: include() v/s require()

La diferencia entre require y require_once es que la segunda asegura que el codigo(archivo) es agregado una sola vez, evitando redeclaraciones de variables o funciones.

en el manual dan un ejemplo donde en un archivo
a.inc declaran x cosas
en otro b.inc declara x cosas y llaman mediante require() a a.ic
y finalmente un archivo c.php
en el cual se llama:
require (&quot;b.inc&quot;); //que llama a require(a.inc)
require (&quot;a.inc&quot;); //que como ya fue llamado por la linea anterior produce un error

si en b.inc se usa require_once para llamar a a.inc y en c.php
require_once(&quot;b.inc&quot;);
require_once(&quot;a.inc&quot;);
se evita la redeclaracion

En forma analoga el include_once &quot;revisa&quot; si el código de un archivo ya ha sido incluido,si es asi no será incluido otra vez.
el require_once () y el include_once () debería usarse en los casos en los cuales el mismo archivo podría ser incluido y evaluado más que una vez durante una ejecución, asegurandose que se eviten problemas de redeclaraciones.

(Espero que este resumen y reagrupamiento del manual se clarificador)

Besitos Romi

  #8 (permalink)  
Antiguo 06/07/2002, 23:03
 
Fecha de Ingreso: agosto-2001
Mensajes: 315
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: include() v/s require()

Me olvidaba en el manual de PEAR recomiendan como NOK el uso de include_once o require_once (por lo dicho anteriormente) y hacen una aclaracion:
include_once () y require_once () son declaraciones, no funciones. Usted no necesita paréntesis alrededor del nombre del archivo para ser incluido.

Besitos Romina
  #9 (permalink)  
Antiguo 06/07/2002, 23:10
 
Fecha de Ingreso: junio-2002
Mensajes: 78
Antigüedad: 21 años, 9 meses
Puntos: 0
Re: include() v/s require()

Entonces por lo visto, para utilizar Funciones de MySQL de tablas o bases distintas dentro de un bucle se debe usar include() , y cuando utilizo solo una tabla en una base debo utilizar require() ?

:)
  #10 (permalink)  
Antiguo 07/07/2002, 17:36
 
Fecha de Ingreso: agosto-2001
Mensajes: 315
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: include() v/s require()

Si esa es la idea( aunque en el segundo caso podrias usar include, en el 1ro no deberias usar require)

Besos romi
  #11 (permalink)  
Antiguo 08/07/2002, 23:40
Avatar de masterwww  
Fecha de Ingreso: enero-2002
Ubicación: Toluca
Mensajes: 1.260
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: include() v/s require()

<a href='ir.asp?http://www.solophp.com.ar/articulos.php?id=12' target='_blank'>http://www.solophp.com.ar/articulos.php?...</a>


ahi esta explicado todo esto
  #12 (permalink)  
Antiguo 09/07/2002, 00:42
 
Fecha de Ingreso: agosto-2001
Mensajes: 315
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: include() v/s require()

El articulo comienza con un error
citando el articulo
Cita:
Las funciones require() e include() son bastante
Ninguna de las dos son funciones son declaraciones.
Bastante flojo no explica comportamiento de las declaraciones en ciclos ni condicionales y al final repite el error de llamarlas funciones y la conclusion no es sustancial
No me parece que sirva para aprender correctamente.

Besos Romina
  #13 (permalink)  
Antiguo 09/07/2002, 00:47
Avatar de masterwww  
Fecha de Ingreso: enero-2002
Ubicación: Toluca
Mensajes: 1.260
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: include() v/s require()

:roto:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:19.