Foros del Web » Programando para Internet » PHP »

Diferencia entre print y echo?

Estas en el tema de Diferencia entre print y echo? en el foro de PHP en Foros del Web. Hola buenas, Pues siempre me lo e preguntado pero nunca me he parado ha mirarlo ya que en pantalla hace lo mismo..pero ahora lo pregunto ...
  #1 (permalink)  
Antiguo 08/09/2006, 18:17
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Diferencia entre print y echo?

Hola buenas,

Pues siempre me lo e preguntado pero nunca me he parado ha mirarlo ya que en pantalla hace lo mismo..pero ahora lo pregunto para saber exactamente que diferencia hay...

Un Saludo y gracias de antemano..!
  #2 (permalink)  
Antiguo 08/09/2006, 21:21
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
Aunque echo y print no son funciones sino construcciones del lenguaje (tales como if, while o list()), la principal diferencia es que print puede comportarse como una función, puesto que devuelve el valor 1, por lo que es posible que una instrucción print se encuentre participando en expresiones complejas, donde echo generaría un error. Ello nos lleva a que print es algo más lento que echo, puesto que pierde un tiempo en ocuparse de devolver el valor. En mi opinión la lógica me dice que cuanto más largo sea el texto a mostrar menos se debería notar la diferencia de velocidad entre una y otra construcciones. Por otra parte, quizás menos importante sea el hecho de que echo admite la sintaxis echo "texto", "texto, "..." y print no.

Lo que yo me pregunto es, devolviendo print siempre el valor 1, ¿en qué situaciones puede ser interesante incluirlo en expresiones complejas donde echo fallaría?

A mí, por el momento, sólo se me ocurren tonterías parecidas a ésta:
Código PHP:
$n 0;
while (<
condicion1>) {
  (...)
  if (<
condicion2>)
    
$a += print 'Se ha dado la condición';
}
echo 
"La condición se dio $n veces"
Algo que, por supuesto, se puede escribir con echo con varias líneas más:
Código PHP:
$n 0;
while (<
condicion1>) {
  (...)
  if (<
condicion2>) {
    echo 
'Se ha dado la condición';
    
$a++;
  }
}
echo 
"La condición se dio $n veces"
Pues eso, si alguien sabe de alguna situació con más salsa, que la postee plis.
  #3 (permalink)  
Antiguo 09/09/2006, 09:11
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
gracias por responder!

Es decir,la diferencia mas significativa es que print se puede comportar como una funcion y tarda mas en llevarse a cabo..no?

Ahora mi duda es,como sabes que es adecuado colocar print o echo???

Un Saludo y Gracias!
  #4 (permalink)  
Antiguo 09/09/2006, 13:12
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
Personalmente nunca me he encontrado una situación en que deba de usar print por no poder usar echo. Y puesto que echo es algo más rápido, pues uso siempre echo. Además, puestos a ser rácanos al límite, la palabra echo son 4 letras, mientras que print son 5 (jejeje). El día que me encuentre una situación en que echo no me sirve, pues usaré print. Aunque ya te digo que me cuesta imaginar esa situación y tengo curiosidad por si alguien se la ha encontrado.

Más importante me parece el hecho de usar con echo (print) las comillas simples o las dobles. Ahí sí que hay una importancia significativa entre usarlas simples (bastante más rápidas) y dobles (estas últimas solo se deberían usar si vamos a meter variables dentro del texto estilo echo "hola $nombre". Si vamos a hacer echo "Hola Don Pepiro" es mejor echo 'Don Pepito'.

Aunque bueno, todo esto es un poco hilar muy fino... Seguro que la eficiencia la estamos perdiendo en otros lugares del código que ni imaginamos.. pero siempre está bien ser curiosos, ¿no?

Un saludo.
  #5 (permalink)  
Antiguo 09/09/2006, 14:29
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
haver si alguien nos dice alguna situacion exacta del uso de print por no poder utilizar echo..

Un Saludo
  #6 (permalink)  
Antiguo 09/09/2006, 15:15
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
En realidad no hay nada mas de lo que se dijo... osea, echo y print son igual salvo que print se puede comportar como una funcion. Nada que no se haya dicho hasta ahora. Pero pienso que la real diferencia entre echo y print no son ellos mismos, sino un hermanito de print como es printf(). Esto es muy util ya que le podes dar un formato a una cadena sin tener que estar cerrando y abriendo las comillas como tendrias que hacerlo con echo.

Saludos.

PD: Otro hermanito, sprintf()
  #7 (permalink)  
Antiguo 10/09/2006, 12:15
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
okey! Gracias! Voy a ver de que se tratan estas "funciones"

Un Saludo
  #8 (permalink)  
Antiguo 10/09/2006, 12:31
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
me lo he leido todo y no he entendido ni papa xD nose si soy un poco burro o es que realmente es complicado..

Un Saludo..
  #9 (permalink)  
Antiguo 10/09/2006, 13:39
Avatar de ArrauKano  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago
Mensajes: 664
Antigüedad: 21 años, 5 meses
Puntos: 4
las funciones *printf *scanf vienen del C, quizas eso tambien te pueda ayudar.
  #10 (permalink)  
Antiguo 10/09/2006, 17:49
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
no mucho porque ni idea de c xDD

Un Saludo
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

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:30.