Domanda

  

Possibile duplicato:
   Riferimento: confronto tra stampa ed eco di PHP

C'è qualche differenza fondamentale e fondamentale tra queste due funzioni in PHP?

È stato utile?

Soluzione

Da: http: / /web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40

  1. Velocità. C'è una differenza tra i due, ma per quanto riguarda la velocità dovrebbe essere irrilevante quale si utilizza. l'eco è leggermente più veloce dal momento che non imposta un valore di ritorno se si vuole davvero arrivare al succo della questione.

  2. Espressione. print () si comporta come una funzione in cui puoi fare: $ ret = print " Hello World " ; E $ ret sarà 1 . Ciò significa che stampa può essere usato come parte di un'espressione più complessa in cui l'eco non può. Un esempio dal manuale di PHP:

$b ? print "true" : print "false";

print fa anche parte della tabella di precedenza che deve essere se lo è deve essere usato all'interno di un'espressione complessa. È quasi in fondo dell'elenco di precedenza però. Solo ", " AND, OR e XOR sono inferiori.

  1. Parametro (s). La grammatica è: echo expression [, expression [, espressione] ...] Ma echo (espressione, espressione) non è valido. Questo sarebbe valido: echo (" howdy "), (" partner ") ; lo stesso di: echo & Quot; Howdy ", " Partner " ; (Mettendo le parentesi in quel semplice esempio servi nessuno scopo poiché non esiste un problema di precedenza dell'operatore con un singolo termine del genere.)

Quindi, l'eco senza parentesi può accettare più parametri, che ottengono concatenato:

   echo  "and a ", 1, 2, 3;   // comma-separated without parentheses
   echo ("and a 123");        // just one parameter with parentheses

print () può accettare solo un parametro:

   print ("and a 123");
   print  "and a 123";

Altri suggerimenti

Sono:

  • print accetta solo un parametro, mentre echo può avere più parametri.
  • print restituisce un valore (1), quindi può essere usato come espressione.
  • l'eco è leggermente più veloce.

Per aggiungere alle risposte sopra, mentre print può accettare solo un parametro, consentirà la concatenazione di più valori, ovvero:

$count = 5;

print "This is " . $count . " values in " . $count/5 . " parameter";

Sono 5 valori in 1 parametro

Penso che print () sia più lento di echo .

Mi piace usare print () solo per situazioni come:

 echo 'Doing some stuff... ';
 foo() and print("ok.\n") or print("error: " . getError() . ".\n");

Come suggerisce il manuale di PHP.net, leggi questa discussione .

Una delle principali differenze è che echo può richiedere più parametri per l'output. Per esempio:.

echo 'foo', 'bar';   // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error

Se stai cercando di valutare il risultato di un'istruzione di output (come sotto) usa print . In caso contrario, utilizzare echo .

$res = print('test');
var_dump($res); //bool(true)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top