(PHP 4, PHP 5, PHP 7, PHP 8)
print — Muestra un string
Muestra expression
.
print
no es una función sino una construcción del lenguaje.
Su argumento es la expresión que sigue a la palabra clave print
,
y no está delimitado por paréntesis.
La diferencia principal con echo
es que
print
solo acepta un argumento y siempre devuelve 1.
expression
La expresión a mostrar. Los valores que no son strings serán convertidos a string,
incluso si la directiva
strict_types
está activada.
Devuelve 1
, siempre.
Ejemplo #1 Ejemplo con print
<?php
print "print no requiere paréntesis.";
print PHP_EOL;
// No se añade salto de línea ni espacio; lo siguiente se muestra como "helloworld" en una sola línea
print "hello";
print "world";
print PHP_EOL;
print "Este string abarca
múltiples líneas. Los saltos de línea también
se mostrarán";
print PHP_EOL;
print "Este string abarca\nmúltiples líneas. Los saltos de línea\nse mostrarán también.";
print PHP_EOL;
// El argumento puede ser cualquier expresión que produzca un string
$foo = "example";
print "foo es $foo"; // foo es example
print PHP_EOL;
$fruits = ["lemon", "orange", "banana"];
print implode(" y ", $fruits); // lemon y orange y banana
print PHP_EOL;
// Las expresiones no-string son convertidas a string, incluso si se usa declare(strict_types=1)
print 6 * 7; // 42
print PHP_EOL;
// Como print tiene un valor de retorno, puede ser usado en expresiones
// Lo siguiente muestra "hello world"
if ( print "hello" ) {
echo " world";
}
print PHP_EOL;
// Lo siguiente muestra "true"
( 1 === 1 ) ? print 'true' : print 'false';
print PHP_EOL;
?>
Nota: Uso con paréntesis
Rodear el argumento de
<?php
print "hello";
// muestra "hello"
print("hello");
// también muestra "hello", porque ("hello") es una expresión válida
print(1 + 2) * 3;
// muestra "9"; los paréntesis hacen que 1+2 se evalúe primero, luego 3*3
// la sentencia print ve toda la expresión como un argumento
if ( print("hello") && false ) {
print " - dentro de if";
}
else {
print " - dentro de else";
}
// muestra " - dentro de if"
// la expresión ("hello") && false se evalúa primero, dando false
// esto se convierte al string vacío "" y se muestra
// la construcción print luego devuelve 1, por lo que se ejecuta el código en el bloque if
?>Cuando
<?php
if ( (print "hello") && false ) {
print " - dentro de if";
}
else {
print " - dentro de else";
}
// muestra "hello - dentro de else"
// a diferencia del ejemplo anterior, la expresión (print "hello") se evalúa primero
// después de mostrar "hello", print devuelve 1
// como 1 && false es false, se ejecuta el código en el bloque else
print "hello " && print "world";
// muestra "world1"; print "world" se evalúa primero,
// luego la expresión "hello " && 1 se pasa al print de la izquierda
(print "hello ") && (print "world");
// muestra "hello world"; los paréntesis fuerzan a que las expresiones print
// se evalúen antes del &&
?>
Nota: Puesto que esto es una construcción del lenguaje y no una función, no puede ser llamada usando funciones variables.