W3docs

echo

La parola chiave "echo" in PHP serve a inviare stringhe in output. Questo articolo ne esplora la sintassi e l'utilizzo con esempi pratici.

L'istruzione PHP echo

echo è il modo più comune per inviare output da uno script PHP al browser (o alla console). È un costrutto del linguaggio, non una vera funzione, motivo per cui lo si vede spesso usato senza parentesi. Questa pagina ne illustra la sintassi, le differenze rispetto a print, il tag abbreviato <?= ?> e gli errori tipici che spiazzano i principianti.

Se sei alle prime armi con l'output dei dati in PHP, può essere utile leggere anche PHP echo e print per un confronto affiancato e variabili PHP per capire i valori che stamperai.

Sintassi

echo expression1, expression2, ...;
  • Gli argomenti sono separati da virgole.
  • Poiché echo è un costrutto del linguaggio, le parentesi sono facoltative. echo "Hi"; e echo("Hi"); funzionano entrambi — ma nota che echo("a", "b"); è un errore di sintassi, poiché le parentesi possono racchiudere un solo argomento.

Output di base

<?php

echo "Hello World!";        // Hello World!
echo "\n";                   // newline
echo "Hello", " ", "World!"; // Hello World!

Passare più argomenti separati da virgole è marginalmente più veloce rispetto alla costruzione di una singola string con l'operatore di concatenazione (.), perché PHP non deve prima creare la string unita.

Echoing delle variabili

<?php

$name = "John";
$age  = 30;

// Concatenation with the . operator
echo "My name is " . $name . " and I am " . $age . " years old.";

All'interno di string con virgolette doppie PHP interpola anche le variabili direttamente, il che è spesso più leggibile della concatenazione:

<?php

$name = "John";
echo "Hello, $name!";        // Hello, John!
echo "Hello, {$name}san!";   // Hello, Johnsan! (braces clarify the variable name)

Le string con virgolette singole non interpolano — echo 'Hello, $name'; stampa il letterale Hello, $name. Vedi PHP strings per le regole complete.

"Provalo tu stesso" non è disponibile per questo esempio.

Il tag echo abbreviato <?= ?>

Quando si mescola PHP con HTML, <?= ?> è l'abbreviazione di <?php echo ?>. È abilitato per impostazione predefinita in PHP ed è il modo idiomatico per stampare un singolo valore all'interno di un template:

<p>Welcome, <?= $username ?>!</p>

<!-- equivalent to: -->
<p>Welcome, <?php echo $username; ?>!</p>

echo vs print

Entrambi producono output, ma esistono delle differenze:

Caratteristicaechoprint
Argomenti multipliSì (separati da virgole)No (uno solo)
Valore restituitoNessunoRestituisce sempre 1
Utilizzabile nelle espressioniNoSì (es. $ok = print "Hi";)
VelocitàMarginalmente più veloceMarginalmente più lento

Poiché print restituisce 1, può comparire all'interno di un'espressione; echo non può. Vedi L'istruzione PHP print per i dettagli.

Errori comuni

  • Non viene restituito alcun valore. $x = echo "Hi"; è un errore fatale — echo non può essere assegnato né usato nelle espressioni.
  • Le parentesi con le virgole causano errori. echo("a", "b"); non è valido; elimina le parentesi: echo "a", "b";.
  • Escape dell'input utente. Fare l'echo di dati non affidabili direttamente nell'HTML espone a XSS. Passali prima attraverso htmlspecialchars(): echo htmlspecialchars($comment);.
  • PHP_EOL vs "\n". Usa la costante PHP_EOL quando hai bisogno del corretto terminatore di riga per il sistema operativo corrente (ad esempio, quando si scrive sulla console anziché in un browser).

Esercizio

Pratica
Qual è il modo corretto di usare la funzione echo in PHP?
Qual è il modo corretto di usare la funzione echo in PHP?
Was this page helpful?