W3docs

echo()

La parola chiave "echo" in PHP serve a visualizzare una o più stringhe. In questo articolo ne esploriamo sintassi e utilizzo.

L'istruzione PHP echo

echo è il modo più comune per inviare output da uno script PHP alla pagina. È un costrutto del linguaggio, non una funzione, quindi non ha valore di ritorno e non è necessario usare le parentesi per chiamarlo. Userai echo continuamente: per stampare testo, visualizzare i valori delle variabili e scrivere HTML.

Questa pagina descrive la sintassi, il comportamento diverso tra virgolette singole e doppie che confonde i principianti, il tag breve <?= ?> e come echo si differenzia da print.

Sintassi

echo expression;
echo expression1, expression2, ...;

Poiché echo è un costrutto del linguaggio, lo si chiama senza parentesi:

echo "Hello";        // correct
echo("Hello");       // also works for a SINGLE argument
echo("a", "b");      // PARSE ERROR — parentheses can't wrap multiple args
echo "a", "b";       // correct way to pass multiple arguments

Puoi passare più valori separandoli con virgole — questo è leggermente più veloce della concatenazione con . perché non viene creata alcuna stringa temporanea. I valori vengono stampati uno di seguito all'altro senza alcun separatore aggiunto.

Esempi

Vediamo alcuni esempi pratici di come si può usare la parola chiave echo:

Esempi di echo in PHP

<?php

// Example 1: Comma-separated arguments (native syntax)
echo "Hello World!", PHP_EOL;

// Output: Hello World!

// Example 2: String concatenation
$myName = "John";
$myAge = 30;
echo "My name is " . $myName . " and I am " . $myAge . " years old.";

// Output: My name is John and I am 30 years old.

// Example 3: Variables without quotes (comma-separated)
$greeting = "Hello";
$name = "World";
echo $greeting, " ", $name, "!";

// Output: Hello World!

Virgolette Singole vs. Doppie

Lo stile delle virgolette che scegli cambia il modo in cui vengono gestite le variabili, quindi è importante capirlo fin dall'inizio. Nelle stringhe con virgolette doppie, PHP analizza le variabili e le sequenze di escape. Nelle stringhe con virgolette singole, invece, non lo fa — il testo viene stampato letteralmente.

<?php

$name = "World";

echo "Hello $name\n";   // Hello World  (variable is interpolated)
echo 'Hello $name\n';   // Hello $name\n  (printed verbatim, no newline)

Usa le virgolette doppie quando vuoi l'interpolazione delle variabili; usa le virgolette singole (leggermente più veloci) quando hai testo semplice e letterale. Consulta PHP Strings per le regole complete, inclusa la sintassi con le parentesi graffe come "{$user['name']}".

Stampare HTML con echo

Un utilizzo molto comune di echo è la stampa di HTML. Puoi incorporare le variabili direttamente nel markup:

<?php

$title = "Welcome";
echo "<h1>$title</h1>";
// Output: <h1>Welcome</h1>

Per blocchi di HTML di grandi dimensioni è solitamente più pulito uscire completamente da PHP (?> ... <?php) piuttosto che usare echo per ogni riga.

Il Tag Echo Breve

La forma abbreviata <?= ... ?> è esattamente equivalente a <?php echo ... ?>. È abilitata per impostazione predefinita in tutte le versioni PHP supportate ed è ideale per i template:

<p>Hello, <?= $name ?>!</p>

Questo è il modo consigliato per stampare un singolo valore all'interno di file prevalentemente HTML.

echo vs. print

echo e print sembrano simili, ma ci sono delle differenze:

echoprint
Tipocostrutto del linguaggiocostrutto del linguaggio
Valore di ritornonessuno (void)sempre 1
Argomenti multiplisì (echo $a, $b;)no
Uso in un'espressionenosì (perché restituisce un valore)

Poiché print restituisce 1, può comparire all'interno di un'espressione: $ok = print "hi";. echo non può. In pratica echo è preferito per l'output generico. Consulta il confronto dedicato echo vs print e il riferimento per print per i dettagli.

Errori Comuni

  • Nessuna parentesi con argomenti multipli. echo("a", "b"); è un errore di analisi; usa echo "a", "b";.
  • echo non restituisce nulla. Non puoi scrivere $x = echo "hi";. Usa print (o sprintf()) se hai bisogno di un valore.
  • Le virgolette singole non interpolano. echo 'Total: $price'; stampa il letterale $price, non il valore della variabile.

Pratica

Pratica
Cosa fa l'istruzione 'echo' di PHP?
Cosa fa l'istruzione 'echo' di PHP?
Was this page helpful?