Em uma nota lateral: print sempre retornará 1 como um valor, o eco não retornará nada. Eu acho que isso pode ser útil em alguns casos.
Bart
Que tipo de caso pode ser?
Jayarjo
Eu também me perguntei isso! Boa pergunta!
aendrew
Respostas:
25
echoé apenas mais rápido em ambientes acadêmicos. A diferença é muito marginal. Uma referência rápida que acabei de fazer: o tempo de busca de uma linha de uma tabela com mais de 2000 nós é de 1 unidade.
Para obter uma melhoria de 1 unidade, eu precisaria substituir cerca de 3.700.000 (mais de 3 milhões) de printdeclarações por echo. Em outras palavras, se você deseja melhorar o desempenho, esse dificilmente é o ponto de partida.
Visto que printpode ser usado em uma variedade muito maior de casos echo, o primeiro tem algumas vantagens. Deixa-lhe três opções:
Sempre use print
Use sempre echoque possível e faça fallback emprint
Use echosempre e refatorar seu código, se echonão puder ser usado, para usá-lo
Drupal assumiu como padrão o primeiro.
Para responder à sua pergunta real sobre por que isso foi escolhido: não foi. Simplesmente cresceu assim.
Você poderia fornecer um exemplo de quando o eco não pode ser usado? É que eu não consigo imaginar nada no momento.
Jayarjo
6
O mais óbvio é if (! print some_method() ) {print some_other_method()}. Uma vez que print retorna TRUE se realmente imprimiu alguma coisa. O eco não retorna nada, e é por isso que também é mais rápido. Outro exemplo que você verá é return print $somevalueno final de um método para retornar o status.
Respostas:
echo
é apenas mais rápido em ambientes acadêmicos. A diferença é muito marginal. Uma referência rápida que acabei de fazer: o tempo de busca de uma linha de uma tabela com mais de 2000 nós é de 1 unidade.Para obter uma melhoria de 1 unidade, eu precisaria substituir cerca de 3.700.000 (mais de 3 milhões) de
print
declarações porecho
. Em outras palavras, se você deseja melhorar o desempenho, esse dificilmente é o ponto de partida.Visto que
print
pode ser usado em uma variedade muito maior de casosecho
, o primeiro tem algumas vantagens. Deixa-lhe três opções:print
echo
que possível e faça fallback emprint
echo
sempre e refatorar seu código, seecho
não puder ser usado, para usá-loDrupal assumiu como padrão o primeiro.
Para responder à sua pergunta real sobre por que isso foi escolhido: não foi. Simplesmente cresceu assim.
fonte
if (! print some_method() ) {print some_other_method()}
. Uma vez que print retorna TRUE se realmente imprimiu alguma coisa. O eco não retorna nada, e é por isso que também é mais rápido. Outro exemplo que você verá éreturn print $somevalue
no final de um método para retornar o status.