W3docs

print

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 parentheses

Los 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: 3

PHP_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.)

"Pruébalo tú mismo" no está disponible para este ejemplo.

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.

Los dos son casi intercambiables para salida simple. Las diferencias son pequeñas pero vale la pena conocerlas:

Característicaprintecho
Valor de retornosiempre 1ninguno (no se puede usar en expresiones)
Número de argumentosexactamente unouno o más (separados por comas)
Velocidad relativaligeramente más lentoligeramente 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

  • print es una construcción del lenguaje que genera una cadena y siempre devuelve 1.
  • Los paréntesis son opcionales — print "x" y print("x") son equivalentes.
  • Su valor de retorno permite usarlo dentro de expresiones y asignaciones, a diferencia de echo.
  • Usa echo para múltiples valores; usa print cuando necesites ese valor de retorno.
  • La salida (incluyendo HTML) se escribe tal cual, así que escapa los datos no confiables primero.

Práctica

Práctica
¿Cuáles de las siguientes afirmaciones son verdaderas sobre la función print en PHP?
¿Cuáles de las siguientes afirmaciones son verdaderas sobre la función print en PHP?
Was this page helpful?