echo o printf

febrero 1, 2010

PHP es un lenguaje que quiso ser familiar para cualquier persona que proviniese de otro lenguaje de programación. Así, que por ejemplo, a la hora de comentar el código puedes usar todas las marcas conocidas: // y /* de C,Java, # de python.

PHP dispone de tres instrucciones para mostrar valores: print, echo y printf.
¿cual es mejor?

Print y echo son muy parecidos salvo que print es una función y echo una construcción del lenguaje.

echo print "hola" -> devuelve hola1 ya se print devuelve el número de datos impreso (0 ó 1)
echo 1,2,3 -> esto no funcionaría con print, ya que solo admite un argumento.

La sintaxis para usarlas (ahora solo me limito al echo) también puede variar. Observa:

1: echo "Su nombre es {$datos[nombre]} y dirección es {$datos[direccion]}";
2: echo "Su nombre es " . $datos['nombre'] . " y dirección es ". $datos['direccion'];
3: echo "Su nombre es ", $datos['nombre'],"y dirección es ",$datos['direccion'];

La primera es una forma cómoda y compacta de escribir, pero cuando se revisa el código, la variables insertadas quedan ‘ocultas’: se muestran con el mismo color que una cadena. Las lineas 2 y 3 son mas engorrosas de escribir, pero mas fáciles de revisar, salvo la notable excepción de las expresiones entrecomilladas, que son siempre más fáciles en el modo 1. En todo caso, la 3 es más elegante que la 2.
Además, en ambas, podría usarse llamadas a función.

Printf es una vieja conocida de C. Nuestro código quedaría así, si no utilizamos la inserción $:

printf ("Su nombre es %s y dirección es %s",
$datos["nombre"],
$datos['direccion']);

Las ventajas de printf son:
– se pueden usar llamadas a funciones, y las variables quedan claramente destacadas.
– se puede formatear mejor la salida (nº de decimales, rellenos, e incluso el orden).
– es mas elegante, ya que en el primer argumento se centra en el HTML, y luego colocamos la lista de variables a insertar. Es mas fácil traducir la aplicación, ya que solo hay que traducir la primera cadena.

printf ( _("Su nombre es %s y dirección es %s"),...)

– además de imprimir valores, se puede usar sprintf, para enviar la salida a una cadena, cosa que echo y print no pueden hacer. ¡se acabó la guerra de echo vs return !

Así que yo ya lo tengo claro, prefiero el printf, aunque todavía y por nostalgia uso el echo con inserción, que al final y al cabo, es un seña de identidad de PHP.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: