La palabra clave "print" en PHP genera una cadena en el navegador u otro flujo de salida. En este artículo exploramos su sintaxis y uso.
La construcción print en PHP
print envía una cadena al flujo de salida al que PHP está escribiendo — normalmente el navegador cuando se ejecuta una página web, o la terminal cuando se ejecuta un script desde la línea de comandos. A pesar de parecerse a una función, print es una construcción del lenguaje: está integrada en el propio lenguaje, acepta exactamente un argumento y siempre devuelve el entero 1.
Ese único valor de retorno es lo que distingue a print de echo y lo hace utilizable dentro de expresiones más grandes. Este capítulo cubre la sintaxis, las diferencias entre print y echo, cuándo importa su valor de retorno y las formas más comunes de utilizarlo.
Sintaxis
print "Hello, world!";Dado que print es una construcción y no una función, los paréntesis son opcionales. Ambas formas son válidas y se comportan de manera idéntica:
print "Hello, world!"; // without parentheses
print("Hello, world!"); // with parenthesesLos paréntesis simplemente agrupan el argumento; no convierten a print en una llamada de función. Sigue aceptando solo un argumento — no se puede pasar una lista separada por comas como permite echo.
Salida de variables y expresiones
print evalúa su argumento primero, por lo que se puede pasar una variable, una cadena concatenada o cualquier expresión que se resuelva a un valor de tipo cadena. Las variables dentro de cadenas entre comillas dobles se interpolan automáticamente:
<?php
$name = "John";
// Interpolation inside a double-quoted string
print "Hello, $name!" . PHP_EOL; // Hello, John!
// Concatenation with the . operator
print "Sum: " . (1 + 2) . PHP_EOL; // Sum: 3PHP_EOL es el carácter de nueva línea de la plataforma — muy útil en scripts de línea de comandos para que cada sentencia se imprima en su propia línea. (Consulta Operadores PHP para el operador de concatenación . y Variables PHP para las reglas de interpolación.)
Usar el valor de retorno
Cada llamada a print devuelve 1. Por sí solo esto parece inútil, pero permite que print aparezca donde se espera un valor — por ejemplo, dentro de una asignación o una expresión lógica:
<?php
// Assigning the result (always 1)
$result = print "Success" . PHP_EOL;
echo $result . PHP_EOL; // 1
// Using print inside a ternary expression
$loggedIn = false;
$loggedIn ? print "Welcome back" : print "Please log in";echo no puede usarse de esta manera: $x = echo "hi"; es un error de sintaxis, porque echo no devuelve nada. Si alguna vez necesitas salida como parte de una expresión, usa print.
print vs echo
Los dos son casi intercambiables para salida simple. Las diferencias son pequeñas pero vale la pena conocerlas:
| Característica | print | echo |
|---|---|---|
| Valor de retorno | siempre 1 | ninguno (no se puede usar en expresiones) |
| Número de argumentos | exactamente uno | uno o más (separados por comas) |
| Velocidad relativa | ligeramente más lento | ligeramente más rápido |
En la práctica ambos son lo suficientemente rápidos como para que la diferencia de velocidad nunca importe. Elige echo cuando quieras imprimir varios valores a la vez; elige print cuando necesites un valor de retorno. Para una comparación más detallada, consulta PHP echo vs print.
Imprimir HTML
Al igual que echo, print simplemente escribe la cadena que se le proporciona, por lo que el marcado HTML pasa directamente a la página:
<?php
$title = "Welcome";
print "<h1>$title</h1>";
print "<p>This paragraph was generated with <code>print</code>.</p>";El navegador muestra el resultado como HTML ordinario. Recuerda escapar cualquier dato proporcionado por el usuario (por ejemplo con htmlspecialchars()) antes de imprimirlo, para evitar ataques de cross-site scripting.
Resumen
printes una construcción del lenguaje que genera una cadena y siempre devuelve1.- Los paréntesis son opcionales —
print "x"yprint("x")son equivalentes. - Su valor de retorno permite usarlo dentro de expresiones y asignaciones, a diferencia de
echo. - Usa
echopara múltiples valores; usaprintcuando necesites ese valor de retorno. - La salida (incluyendo HTML) se escribe tal cual, así que escapa los datos no confiables primero.