Comprendere le istruzioni echo e print di PHP
In PHP, echo e print sono i due metodi più usati per produrre output di testo. Funzionano in modo simile ma presentano differenze importanti.
Produrre testo in output è la prima cosa che fanno la maggior parte dei programmi PHP, e PHP mette a disposizione due strumenti per farlo: echo e print. Sembrano intercambiabili, e per l'output quotidiano lo sono — ma sotto il cofano non sono la stessa cosa. Entrambi sono costrutti del linguaggio (non funzioni in senso stretto), quindi possono essere chiamati con o senza parentesi.
Questo capitolo mostra come funziona ciascuno, dove differiscono e quale scegliere. Se sei nuovo all'output di valori, può essere utile leggere prima le variabili PHP e le stringhe PHP, poiché echo e print sono il modo in cui vengono visualizzate.
Istruzione echo di PHP
L'istruzione echo produce in output una o più stringhe. Il suo utilizzo più comune è la stampa di un singolo testo:
Esempio PHP di echo
echo non restituisce alcun valore. La stringa sopra viene inviata direttamente al buffer di output e trasmessa al browser (o al terminale, per gli script CLI).
Output di variabili ed espressioni
Puoi stampare le variabili direttamente, oppure costruire una stringa più lunga con l'operatore di concatenazione .:
Stringa concatenata con echo in PHP
All'interno delle stringhe con virgolette doppie, le variabili vengono interpolate automaticamente, quindi spesso non è nemmeno necessaria la concatenazione:
<?php
$num = 5;
echo "The value of num is: $num"; // The value of num is: 5
echo 'The value of num is: $num'; // The value of num is: $numLe virgolette singole vengono prese letteralmente — $num viene stampato così com'è. Consulta le stringhe PHP per le regole complete.
Passare più argomenti
Una funzionalità che print non possiede: echo accetta più argomenti separati da virgola e li stampa in ordine. Questo può essere leggermente più veloce della concatenazione, perché PHP non costruisce prima una grande stringa unica:
<?php
echo "Red", " ", "Green", " ", "Blue", "\n";
// Output: Red Green BlueNota: la forma con la virgola funziona solo quando si chiama
echosenza parentesi.echo("a", "b")è un errore di sintassi.
Il tag echo abbreviato
Quando si mescola PHP con HTML, <?= ... ?> è un'abbreviazione per <?php echo ... ?> — comodo nei template:
<p>Welcome, <?= $name ?>!</p>Istruzione print di PHP
Anche print produce testo in output, ma con una differenza importante: restituisce sempre il valore 1. Questo valore di ritorno consente di usare print all'interno di espressioni, dove echo sarebbe un errore di sintassi:
Esempio della funzione print in PHP
Poiché restituisce 1, print viene talvolta usato in costrutti condizionali compatti come $ok or print "failed";. In pratica questo è raro — la maggior parte del codice lo usa semplicemente come echo.
Come echo, print gestisce variabili ed espressioni:
Stringa concatenata con print in PHP
Una cosa da ricordare: print accetta esattamente un argomento. Non è possibile scrivere print "a", "b";.
Confronto tra echo e print
| Caratteristica | echo | print |
|---|---|---|
| Restituisce un valore | No | Restituisce sempre 1 |
| Utilizzabile in un'espressione | No | Sì ($x = print "hi";) |
| Argomenti multipli | Sì (echo $a, $b;) | No — un solo argomento |
| Velocità | Marginalmente più veloce | Marginalmente più lento |
Alcune considerazioni pratiche:
- La differenza di velocità è trascurabile per applicazioni reali — è una micro-ottimizzazione che quasi mai si nota. Scegli in base alla leggibilità, non alle prestazioni.
- Usa
echoper l'output normale. È la scelta convenzionale e supporta argomenti multipli. - Ricorri a
printsolo quando hai genuinamente bisogno del suo valore di ritorno all'interno di un'espressione.
Conclusione
echo e print sono entrambi costrutti del linguaggio per inviare testo all'output. Usa echo per impostazione predefinita — è la scelta idiomatica e può accettare più argomenti — e usa print quando hai specificamente bisogno di un valore di ritorno. Per approfondire, consulta le variabili PHP, le stringhe PHP e i tipi di dati PHP.