Usos de print() y echo()

baluart20 Marzo 2005 - 1:00am 18 comentarios
Enviar por Email Imprimir

En distintos foros vemos como se recomienda el uso de echo() en vez de print() sin explicar los motivos, incluso he leido recomendaciones de usuarios que tambien leyeron otras recomendaciones en otros foros pero que tampoco explicaban su porque. Esto ha motivado que me decidiera ha desarrollar este tema.

Este artículo, dirigido a los que recien empiezan con el uso de php, comenta las dos maneras de imprimir una página php: Mediante print() y echo(), aquí vemos sus sintaxis, diferencias y recomendaciones, todo con simples ejemplos.

Este artículo esta dirigido a los que recien empiezan con el uso de php, en él comentamos las dos maneras de imprimir una página php: el Uso de print() y echo().

Como sabemos, todo contenido php siempre debe estar dentro de las etiquetas <?php y ?>, por ejemplo:

<?php
// contenido de la pagnina php
?>

Sin embargo, si probamos esto en el navegador, no se mostraría absolutamente nada. Para verlo, necesitamos usar una función que imprima lo que nosotros queremos en el navegador.

Uso de print()

Empezaremos entonces con la función print(). Esta función es muy facil de utilizar, inclusive los parentesis no son necesarios. Su estructura es la siguiente:

<?php
print ("contenido del php");
print
"con print se muestra el contenido en el navegador!";
?>

Pero no solamente se puede mostrar texto estático, para esto sólo bastaría el html, para lo que en realidad importa es mostrar el valor de las variables. Veamos, primero declaramos una variable y después la imprimimos con la función print().

<?php
$saludo
= "hola";
print (
"$saludo = "); //se imprime la variable saludo
print "$saludo";
?>

Uso de echo()

Ahora utilicemos la funcion echo().

<?php
$saludo
= "hola";
echo (
"$saludo = "); //se imprime la variable saludo
echo "$saludo";
?>

Hasta aquí hemos visto que ambas funciones hacen lo mismo, pero ¿Cuál es la diferencia entre las dos? Bien, una diferencia es que el echo() puede tomar expresiones múltiples, por ejemplo:

<?php
echo "uno", "dos", "tres";
?>

mientras el print() no. Sin embargo, se utiliza el print() como parte de una expresón más compleja, donde el echo() no se podría aplicar, debido a que print() puede retornar un valor true o false y el echo() no. Ahora bien, ¿Por qué se recomienda en la mayoria de foros el uso de la función echo()? Pues el principal motivo es la velocidad, el echo() es mucho más veloz que el print(), algunos estiman que hasta en un 50%.

Como ya sabemos como imprimir una pagina web en el navegador, debemos de tener en cuenta que tanto print() como echo() no pueden imprimir las funciones variables. Para esto se necesitará usar una función creada por nosotros que utilice cualquiera de éstas preconstruidas como funciones variables. Por ejemplo:

<?php
function uno() {
    echo
"En uno() no hay argumento.<br/>\n";
}
function
dos($argumento = null) {
    echo
"En dos() el argumento es '$argumento'.";
}
$func = "uno";
$func(); // Lamamos a la función uno
$func = "dos";
$func("obtenido"); // Llmamos a la funcion dos
?>

En este código declaramos dos funciones simples. Asignamos sus nombres a la variable y ejecutamos ambas funciones usando la misma variable.

Comentarios

Imagen de jaatu

por fin conozco las diferencias!

Imagen de lanzarote

donde e encuentre el echo... el print siempre genera posibles problemas de hackers

Imagen de pedrete
pedrete

Aquí os dejo una serie de cinco scripts php5. Entre ellos:

-Obtención de Google Pagerank desde PHP5 usando sockets.

-Auto carga de objetos utilizando la función __autoload de PHP5

-Integrar en tu web marcadores de del.icio.us con cURL y PHP5

Imagen de Kevin
Kevin

echo como print funcionan de igual manera ya que print tambien puede imprimir expresiones múltiples de la misma forma que echo solamente reemplazando las comas (,) por puntos (.)

<?php
echo "uno". "dos". "tres";
?>

Imagen de GyoX

Lanzarote, aprende a hablar antes de escribir tonterías, por favor. ¿Problemas de hackers? el pobre curioso no encontraba un libro con el que documentarse? ¿No crees que la función por si sola no tiene ningun bug? Informate bien campeón.

Imagen de CarlGo
CarlGo

La observación del rendimiento en la diminución del tiempo al usar el echo es cierta, sin embargo tendría que usarse mucha cantidad de echo´s para observar este desempeño. Por otro lado considero el uso del echo más comodo que el print. Inclusive en documentaciones recientes sobre programación de PHP hacen uso extenso del echo.

Saludos

Imagen de Anonymous
Anonymous

Solo un comentario de un novato a otros novatos que pudieran llegar aquí.

Si llegaste aqui preguntandote que hay de la "funcion SAY"...

Lei que SAY no existe y que solo hay echo o print. Hay varias guias en internet que aun tiene al SAY dentro de su codigo, pero no debe usarse.

Si algun usuario experimentado puedo confirmar eso, seria muy bueno.

Imagen de baluart
baluart

Anónimo, este artículo esta referido a PHP. Y en este lenguaje de programación no existe la función SAY. Saludos.

Imagen de emmanuelxd
emmanuelxd

creo que las comillas y algunos parentesis no son en su totalidad necesarios... Ejemplo:

echo $variable;

ó

echo "Texto..";

Aclaro por que algunos que vienen comenzando podrían complicarse :)

Imagen de Ing. Sosa
Ing. Sosa

Excelente demostraciones del tema; yo soy catedrático de un Tecnologico y los alumnos siempre tienen problemas al momento que desean mandar salidas a sus páginas y esa pregunta de las diferencias entre print y echo siempre la hacen, y esa es precisamente la respuesta. Gracias por sus colaboraciones. Aunque en lo personal prefiero trabajar mis páginas en .Net con WebSite.

Imagen de Johnny Alejandro
Johnny Alejandro

<?php
print "uno". "dos". "tres"; /*Pero cambiando las comas por puntos el print si funciona,
aún no quedo muy claro con ese ejemplo :S*/
?>

Imagen de Eduardo Chávez
Eduardo Chávez

El punto indica concatenación el print funciona con punto porque lo que esta recibiendo es un solo parámetro ¿cómo? si, un solo parámetro .

En otras palabras, el punto une variables y en este caso cadenas .

$union = "Hola" . " ¿cómo estas?"
//$union = "Hola ¿cómo estas?"

//Ambos imprimen lo mismo => Hola ¿cómo estas?
print "Hola" . " ¿cómo estas?"
echo "Hola" . " ¿cómo estas?"

//Concatenando variables
$primera=13;
$segunda= 'pizza'
//Se iimprimira '13pizza'
echo $primera. $segunda;
print $primera. $segunda;

La diferencia con echo es que puede recibir múltiples parámetros y estos son delimitados por el carácter coma.

echo $primera , $segunda;// La coma separa argumentos, el punto une variables, se pueden unir N valores (variables y constantes numéricas o cadenas).

Imagen de dnog

Johnny Alejandro, lo de cambiar comas por puntos no es que haga lo mismo, me explico.

El punto en PHP produce una concatenación, es decir:

"uno"."dos" en realidad se interpreta como "unodos", no como "uno" y a continuación "dos".

echo "uno","dos"; -> Imprime "uno" y luego "dos"

no es lo mismo que:

print "uno"."dos"; -> Imprime "unodos"

Imagen de Anonymous
Anonymous

"uno"."dos" en realidad se interpreta como "unodos", no como "uno" y a continuación "dos".

echo "uno","dos"; -> Imprime "uno" y luego "dos"

no es lo mismo que:

print "uno"."dos"; -> Imprime "unodos"

es la misma vaina desde el punto de vista de un usuario quiza no sea lo mismo dentro de la ejecucion de cada instruccion tanto el echo y el print pero es el mismo resultado al que llegamos si hago

print "uno"."dos";

o hago

echo "uno","dos";

los dos arrojan el mismo resultado es decir: "unodos" al igual q si concateno a la cadena un vacio es decir " " ahi de igual manera si me imprime con espacio pero arroja el mismo resultado

Imagen de Anonymous
Anonymous

say????
SINCO, SAY Y SIETE, eso no es PHP eso es murciano.
jajaja.

Imagen de Anonymous
Anonymous

Hola buenos dias, desarrollo una aplicacion en php,html y phpmyadmin tengo un formulario "pedido" y quiero que en la parte datos cliente, cuando digite el idcliente del cliente
se llenen automaticamente los datos que anterior mente se han ingresado por medio del formulario cliente.

agradezco al que me pueda colaborar mi correo es pipegordillo@hotmail.com

Imagen de ruddy
ruddy

mmmmmm la diferencia es que print se utiliza como una funcion para casos complejos

Ejemplos de uso
$array=file("archivo.txt") or print "No encontrado";
En el ejemplo anterior solo se puede usar PRINT, si usaríamos ECHO daría un “parse error” dado que ECHO no devuelve valor alguno.

Imagen de Acm
Acm

bueno, la diferencia para estar en el rendimiento, que sólo se puede evaluar si tienes algo de más de 1,000 líneas, y sí parece que únicamente la función print puede devolver un valor true or false.

Tutoriales

Cómo descargar videos de VK.com
En este artículo voy a explicar como descargar videos y películas...
Descargar Facebook Móvil Gratis
Por si aún no lo han hecho, es posible descargar Facebook Móvil...
Cómo generar tráfico web con las redes sociales - Paso a Paso
Muchas empresas están publicando contenidos como la forma de crear...

Artículo Recomendado

3 Tips cruciales para recuperar archivos eliminados
¿Te imaginas perder el trabajo de toda una semana en tan solo unos segundos? Todos hemos pasado por este problema. Quizás eliminamos por error un archivo importante o lo borramos sin pensar que era valioso para otro... más