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.
por fin conozco las diferencias!
donde e encuentre el echo... el print siempre genera posibles problemas de hackers
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
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";
?>
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.
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
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.
Anónimo, este artículo esta referido a PHP. Y en este lenguaje de programación no existe la función SAY. Saludos.
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 :)
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.
<?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*/
?>
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).
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"
"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
say????
SINCO, SAY Y SIETE, eso no es PHP eso es murciano.
jajaja.
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
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.
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.