Pergunta

Duplicate possíveis:
: Comparando impressão de PHP e eco

Existe alguma diferença importante e fundamental entre essas duas funções em PHP?

Foi útil?

Solução

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

  1. Speed. Há uma diferença entre os dois, mas a velocidade-wise deve ser irrelevante qual você usa. echo é ligeiramente mais rápido uma vez que não define um valor de retorno se você realmente quer descer ao âmago da questão.

  2. Expression. se comporta print() como uma função em que você pode fazer: $ret = print "Hello World"; E $ret será 1. Isso significa que de impressão pode ser utilizado como parte de uma expressão mais complexo onde eco não pode. A exemplo do PHP Manual:

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

impressão também faz parte da tabela de precedência que ele precisa ser se está a ser utilizado dentro de uma expressão complexa. É apenas sobre a parte inferior da lista de precedência embora. Só "" AND, OR e XOR são mais baixos.

  1. parâmetro (s). A gramática é: echo expression [, expression[, expression] ... ] Mas echo ( expression, expression ) não é válido. Isso seria válido: echo ("howdy"),("partner"); o mesmo que: echo "howdy","partner"; (Colocar os suportes em que exemplo simples serve nenhum propósito, pois não há questão de precedência de operadores com um único termo como esse.)

Assim, eco sem parênteses pode levar vários parâmetros, que get concatenado:

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

print() só pode ter um parâmetro:

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

Outras dicas

Eles são:

  • imprimir leva apenas um parâmetro, enquanto eco pode ter vários parâmetros.
  • impressão retorna um valor (1), de modo que pode ser usado como uma expressão.
  • echo é ligeiramente mais rápido.

Para adicionar as respostas acima, enquanto a impressão só pode ter um parâmetro, ele irá permitir a concatenação de vários valores, ou seja:

$count = 5;

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

Este é de 5 valores em 1 parâmetro

Eu acho print() é mais lento do que echo.

Eu gosto de usar print() apenas para situações como:

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

Como o manual PHP.net sugere, tomar uma leitura de essa discussão .

Uma diferença importante é que echo pode levar vários parâmetros para a saída. Por exemplo:.

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

Se você está procurando para avaliar o resultado de uma instrução de saída (conforme abaixo) uso print. Se não, o uso echo.

$res = print('test');
var_dump($res); //bool(true)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top