print()
Articolo sulla funzione PHP print(), usata per inviare una stringa all'output. Simile a echo(), con una differenza chiave: il valore di ritorno.
print è un costrutto del linguaggio PHP che invia una stringa all'output. È uno dei modi più comuni per inviare testo al browser o al terminale, insieme a echo. Questa pagina illustra la sintassi di print, la caratteristica che lo distingue da echo (il suo valore di ritorno), il comportamento delle parentesi e gli errori comuni da evitare.
Un costrutto del linguaggio — non una funzione — significa che print fa parte della grammatica del linguaggio stesso. In pratica è per questo che si può scrivere print "x" senza parentesi, esattamente come con echo.
Sintassi
int print(string $expression)print accetta un singolo argomento, $expression, che viene convertito in stringa e scritto nell'output. Restituisce sempre 1, quindi può essere usato in espressioni più ampie dove echo non potrebbe essere utilizzato.
Poiché le parentesi sono facoltative, tutte queste forme sono valide:
print "Hello, World!";
print("Hello, World!");
print "Sum is " . (2 + 3);Un esempio di base
L'output è:
Hello, World!print vs. echo
print ed echo sembrano quasi identici, ma esistono due differenze reali:
echo | print | |
|---|---|---|
| Valore di ritorno | nessuno (non restituisce nulla) | sempre 1 |
| Argomenti multipli | sì — echo $a, $b; | no — un solo argomento |
| Velocità | leggermente più veloce | leggermente più lento |
Le differenze sono minime, quindi la maggior parte dei progetti ne sceglie uno e lo usa in modo coerente. Usa echo quando vuoi inviare più valori in una volta sola; ricorri a print solo quando hai bisogno di un valore di ritorno all'interno di un'espressione. Per un confronto affiancato consulta echo e print in PHP.
<?php
// echo can take several arguments separated by commas
echo "a", "b", "c"; // abc
// print cannot — this is a syntax error:
// print "a", "b";
?>Utilizzare il valore di ritorno
Poiché print restituisce 1, può comparire dove ci si aspetta un'espressione. Questo risulta occasionalmente utile in un condizionale o in un operatore ternario, dove echo non funzionerebbe:
<?php
$loggedIn = true;
// Ternary: the print runs and evaluates to 1, but we only care about the side effect.
$loggedIn
? print("Welcome back!\n")
: print("Please sign in.\n");
?>Output:
Welcome back!Questo schema è raro nel codice reale — un semplice if/else con echo è più chiaro — ma spiega perché print restituisce un valore.
Stampare variabili e HTML
print invia all'output qualsiasi stringa si costruisca, incluso HTML. L'interpolazione di variabili all'interno di una stringa con doppi apici è il modo idiomatico per mescolare testo e dati:
<?php
$user = "Ada";
print "<p>Hello, $user!</p>\n";
print 'Single quotes do NOT interpolate: $user' . "\n";
?>Output:
<p>Hello, Ada!</p>
Single quotes do NOT interpolate: $userNota la differenza: i doppi apici ("...") espandono $user, i singoli apici ('...') lo stampano letteralmente.
Errori comuni
printnon è adatto per array o oggetti. Passare un array stampa la parola letteraleArraye genera un avviso. Per ispezionare dati strutturati usaprint_r()ovar_dump().- L'output non esegue escape di nulla.
printscrive testo grezzo. Quando si invia input utente nell'HTML, racchiudilo inhtmlspecialchars()per evitare XSS. - Per output formattato, preferisci
printf. Se hai bisogno di spaziatura, formattazione numerica o segnaposto,printf()esprintf()sono gli strumenti giusti.
Riepilogo
print invia all'output una singola stringa, restituisce sempre 1 e accetta parentesi facoltative. È intercambiabile con echo per l'output quotidiano; l'unico motivo per preferirlo è quando si necessita del suo valore di ritorno all'interno di un'espressione. Per il debug di array e oggetti, usa print_r() o var_dump(); per stringhe formattate, usa printf().