Eu uso echo
e print_r
muito, e quase nunca uso print
.
Eu sinto que echo
é uma macro e print_r
é um pseudônimo de var_dump
.
Mas essa não é a maneira padrão de explicar as diferenças.
Eu uso echo
e print_r
muito, e quase nunca uso print
.
Eu sinto que echo
é uma macro e print_r
é um pseudônimo de var_dump
.
Mas essa não é a maneira padrão de explicar as diferenças.
Respostas:
print
e echo
são mais ou menos iguais; ambos são construções de linguagem que exibem seqüências de caracteres. As diferenças são sutis: print
possui um valor de retorno 1, portanto pode ser usado em expressões, enquanto echo
possui um void
tipo de retorno; echo
pode assumir vários parâmetros, embora esse uso seja raro; echo
é um pouco mais rápido queprint
. (Pessoalmente, eu sempre uso echo
, nunca print
.)
var_dump
imprime um despejo detalhado de uma variável, incluindo seu tipo e o tipo de qualquer subitem (se for uma matriz ou um objeto). print_r
imprime uma variável de uma forma mais legível para o ser humano: seqüências de caracteres não são citadas, informações de tipo são omitidas, tamanhos de matriz não são fornecidos etc.
var_dump
geralmente é mais útil do que print_r
na depuração, na minha experiência. É particularmente útil quando você não sabe exatamente quais valores / tipos você tem em suas variáveis. Considere este programa de teste:
$values = array(0, 0.0, false, '');
var_dump($values);
print_r ($values);
Com print_r
você, você não pode dizer a diferença entre 0
e 0.0
, ou false
e ''
:
array(4) {
[0]=>
int(0)
[1]=>
float(0)
[2]=>
bool(false)
[3]=>
string(0) ""
}
Array
(
[0] => 0
[1] => 0
[2] =>
[3] =>
)
eco
Sem valor de retorno
por exemplo echo "String 1", "String 2"
impressão
Retorna 1
, para que possa ser usado em uma expressão
por exemplo print "Hello"
ou, if ($expr && print "foo")
print_r ()
var_dump ()
print_r()
, por exemplo, também imprime o tipo de valoresvar_export ()
print_r()
e var_dump()
- a saída resultante é um código PHP válido!Notas:
print
possa ser usado em uma expressão, recomendo que as pessoas evitem fazê-lo, porque é ruim para a legibilidade do código (e porque é improvável que seja útil). As regras de precedência quando interage com outros operadores também podem ser confusas. Por isso, eu pessoalmente nunca tenho motivos para usá-lo echo
.echo
e print
são construções de linguagem print_r()
e var_dump()
/ var_export()
são funções regulares. Você não precisa de parênteses para colocar os argumentos em echo
ou print
(e, se você os usar, eles serão tratados da mesma maneira que em uma expressão).var_export()
retorne um código PHP válido, permitindo que os valores sejam lidos mais tarde, depender desse código de produção pode facilitar a introdução de vulnerabilidades de segurança devido à necessidade de uso eval()
. Seria melhor usar um formato como JSON para armazenar e ler valores de volta. A velocidade será comparável.echo $a, $b;
sintaxe quando pode fazer echo $a . $b;
: se $ a ou $ b são realmente grandes seqüências de caracteres, o último usará memória e tempo extras, criando uma versão concatenada separada das seqüências de caracteres na memória antes dela pode iniciar a saída para o navegador.
echo $a; echo $b;
.
Apenas para adicionar à resposta de John , echo
deve ser o único que você usa para imprimir conteúdo na página.
print
é um pouco mais lento. var_dump()
e print_r()
deve ser usado apenas para depuração.
Também vale a pena mencionar que, print_r()
e var_dump()
por padrão, ecoará, adicione um segundo argumento ao print_r()
menos que seja avaliado como true para que ele retorne, por exemplo print_r($array, TRUE)
.
A diferença entre ecoar e retornar são:
echo
ing e return
ing?
print_r
bastante o parâmetro de retorno enquanto codificava o PHP. No entanto, eu costumava escrever print_r( $foo, 1 );
. É mais rápido digitar;) E sobre isso, não me importo muito com legibilidade, pois também acho o nome print_r
não muito descritivo.
var_dump()
não suporta o segundo argumento, permitindo retornar um valor como o print_r()
faz, porque var_dump()
pode aceitar vários argumentos para a saída.
echo
Não tendo tipo de retorno
print
Tem tipo de retorno
print_r()
Saídas como formatadas,
A diferença entre eco , impressão , print_r e var_dump é muito simples.
eco
eco não é realmente uma função, mas uma construção de linguagem usada para imprimir a saída. É marginalmente mais rápido que a impressão.
echo "Hello World"; // this will print Hello World
echo "Hello ","World"; // Multiple arguments - this will print Hello World
$var_1=55;
echo "$var_1"; // this will print 55
echo "var_1=".$var_1; // this will print var_1=55
echo 45+$var_1; // this will print 100
$var_2="PHP";
echo "$var_2"; // this will print PHP
$var_3=array(99,98,97) // Arrays are not possible with echo (loop or index value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with echo (loop or index value required)
Você também pode usar a instrução echo com ou sem parênteses
echo ("Hello World"); // this will print Hello World
impressão
Assim como a impressão de construção de eco também é uma construção de linguagem e não uma função real. As diferenças entre eco e impressão são que a impressão aceita apenas um único argumento e a impressão sempre retorna 1. Enquanto o eco não tem valor de retorno. Portanto, a instrução print pode ser usada em expressões.
print "Hello World"; // this will print Hello World
print "Hello ","World"; // Multiple arguments - NOT POSSIBLE with print
$var_1=55;
print "$var_1"; // this will print 55
print "var_1=".$var_1; // this will print var_1=55
print 45+$var_1; // this will print 100
$var_2="PHP";
print "$var_2"; // this will print PHP
$var_3=array(99,98,97) // Arrays are not possible with print (loop or index value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with print (loop or index value required)
Assim como o eco , a impressão pode ser usada com ou sem parênteses.
print ("Hello World"); // this will print Hello World
print_r
o função print_r () é usada para imprimir informações legíveis por humanos sobre uma variável. Se o argumento for uma matriz, a função print_r () imprimirá suas chaves e elementos (o mesmo para objetos).
print_r ("Hello World"); // this will print Hello World
$var_1=55;
print_r ("$var_1"); // this will print 55
print_r ("var_1=".$var_1); // this will print var_1=55
print_r (45+$var_1); // this will print 100
$var_2="PHP";
print_r ("$var_2"); // this will print PHP
$var_3=array(99,98,97) // this will print Array ( [0] => 1 [1] => 2 [2] => 3 )
$var_4=array("P"=>"3","J"=>"4"); // this will print Array ( [P] => 3 [J] => 4 )
var_dump
A função var_dump geralmente usada para depuração e imprime as informações (tipo e valor) sobre uma variável / matriz / objeto.
var_dump($var_1); // this will print int(5444)
var_dump($var_2); // this will print string(5) "Hello"
var_dump($var_3); // this will print array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
var_dump($var_4); // this will print array(2) { ["P"]=> string(1) "3" ["J"]=> string(1) "4" }
Eco :
É uma declaração não uma função Sem valor de retorno
Não é necessário os parênteses
Não imprimir matriz
Impressão
É função real
Tipo de retorno 1
Necessário Parênteses
Não imprimir matriz
Print_r
Imprimir em formato legível por humanos
String não está entre aspas
Informações não detalhadas da variável, como tipo e todas
var_dump
Todas as informações de despejo da variável, como tipo de elemento e subelemento
print
é uma função real, é uma construção de linguagem como eco. Também pode ser usado como uma declaração. não é uma afirmação nem pode ser usada em uma. que não exigem parênteses, nem qualquer eco ou imprimir usar os parênteses como uma função faria. Você também perdeu uma das principais diferenças - o eco aceita várias cadeias para eco separadas por vírgulas. echo
print
** O Echocan aceita várias expressões enquanto a impressão não pode. A função PHP Print_r () é usada para retornar uma matriz em um formato legível por humanos. É simplesmente escrito como
![Print_r ($your_array)][1]
echo: echo é uma construção de linguagem na qual não é necessário usar parênteses com ela e pode receber qualquer número de parâmetros e retornar nulo.
void echo (param1,param2,param3.....);
Example: echo "test1","test2,test3";
print: é uma construção de linguagem em que não é necessário usar parênteses, basta pegar um parâmetro e retornar
1 always.
int print(param1);
print "test1";
print "test1","test2"; // It will give syntax error
prinf: É uma função que leva pelo menos uma string e estilo de formato e retorna o comprimento da string de saída.
int printf($string,$s);
$s= "Shailesh";
$i= printf("Hello %s how are you?",$s);
echo $i;
Output : Hello Shailesh how are you?
27
echo returns void so its execution is faster than print and printf
print_r()
é usado para imprimir a matriz em formato legível por humanos.
print_r () pode imprimir o valor, mas também se o segundo parâmetro da flag for passado e for TRUE - ele retornará o resultado impresso como string e nada será enviado para a saída padrão. Sobre var_dump. Se o depurador do XDebug estiver instalado, os resultados serão formatados de maneira muito mais legível e compreensível.