W3docs

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

php— editable, runs on the server

L'output è:

Hello, World!

print ed echo sembrano quasi identici, ma esistono due differenze reali:

echoprint
Valore di ritornonessuno (non restituisce nulla)sempre 1
Argomenti multiplisì — echo $a, $b;no — un solo argomento
Velocitàleggermente più veloceleggermente 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: $user

Nota la differenza: i doppi apici ("...") espandono $user, i singoli apici ('...') lo stampano letteralmente.

Errori comuni

  • print non è adatto per array o oggetti. Passare un array stampa la parola letterale Array e genera un avviso. Per ispezionare dati strutturati usa print_r() o var_dump().
  • L'output non esegue escape di nulla. print scrive testo grezzo. Quando si invia input utente nell'HTML, racchiudilo in htmlspecialchars() per evitare XSS.
  • Per output formattato, preferisci printf. Se hai bisogno di spaziatura, formattazione numerica o segnaposto, printf() e sprintf() sono gli strumenti giusti.

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().

Pratica

Pratica
Quali sono i modi per stampare una stringa in PHP secondo l'articolo su w3docs?
Quali sono i modi per stampare una stringa in PHP secondo l'articolo su w3docs?
Was this page helpful?