Parte 1 – “echo print var_dump print_r”

Para inicio de conversa, vamos ao básico: "cuspir informação na tela". Nesse post serão mostrados com exemplos as principais "funções" que utilizo para a impressão de informação na tela, e qual delas podem ser úteis no debug.

echo e print

Aos apressados, rápido exemplo de utilização.

  1. <?php
  2.  
  3. echo "Olá Thiago";
  4. echo 'Olá Thiago';
  5. echo ("Olá Thiago");
  6. echo "Olá ", "Thiago";
  7. echo ("Olá", "Thiago");
  8. print "Olá Thiago";
  9. print ("Olá Thiago");
  10. //a saída para os "echos" e os print serão
  11. //Olá Thiago;
  12.  
  13. ?>

O uso do echo tem um comportamento diferenciado e requer certa atenção. O echo não é uma função do PHP e sim um construtor da linguagem. Por conta dessa característica o echo dispensa o uso de parênteses. Logo é possível usá-lo passando uma string diretamente (linhas 3, 4 e 5). Para saber mais sobre os construtores da linguagem PHP de uma olhada nesse link.

A utilização do echo pode ser feita em qualquer parte do código em um arquivo PHP, não adianta que não vai funcionar em arquivos com a extensão diferente da .php a não ser é claro que estejam essas extensões configuradas para serem interpretadas pelo PHP.

  1. <html>
  2. <head>
  3. <title><?php echo "Titulo da página";?></title>
  4. </head>
  5. <body>
  6. <h1>Meu site em PHP</h1>
  7. </body>
  8. </html>

 var_dump e print_r

Eu utilizo muito essas duas duas funções para debugar variáveis. Não as utilizo para um impressão de um conteúdo normal como eu fária com o echo ou print. Normalmente utilizo o var_dump para a impressão do conteúdo de variáveis quando eu preciso saber o tipo do valor (se é inteiro, string, float ... ) e o print_r quando eu só preciso ver o analisar o conteúdo.

Exemplos com variáveis simples.

  1. <?php
  2.  
  3. $nome = "Thiago";
  4. $idade = 26;
  5.  
  6. // utilizando o print_r
  7.  
  8. print_r($nome);
  9. print_r($idade);
  10. /** a saída aqui será:
  11.  * Thiago
  12.  * 26
  13.  */
  14.  
  15. // usando o var_dump
  16.  
  17. var_dump($nome);
  18. var_dump($idade);
  19.  
  20. /**
  21.  * A saída aqui será
  22.  * string(6) "Thiago"
  23.  * int(26)
  24.  */
  25.  
  26. ?>

Exemplos com variáveis complexas.

  1. <?php
  2. $obj = new StdClass();
  3. $obj->nome = "Thiago";
  4. $obj->obj = new StdClass();
  5. $obj->obj->idade = 26;
  6.  
  7. var_dump($obj);
  8.  
  9. /**
  10.  * a sua saída será:
  11.  
  12.  * object(stdClass)#1 (2) {
  13.  * ["nome"]=>
  14.  * string(6) "Thiago"
  15.  * ["obj"]=>
  16.  * object(stdClass)#2 (1) {
  17.  * ["idade"]=>
  18.  * int(26)
  19.  * }
  20.  * }
  21. **/
  22.  
  23. print_r($obj);
  24.  
  25. /**
  26.  * a sua saída será:
  27.  
  28.  * stdClass Object
  29.  * (
  30.  * [nome] => Thiago
  31.  * [obj] => stdClass Object
  32.  * (
  33.  * [idade] => 26
  34.  * )
  35.  *
  36.  * )
  37. */
  38. ?>

Fica visível a diferença entre as duas chamadas. O var_dump é muito mais rico em detalhe que o print_r que em compensação é muito mais fácil de ler e entender. A utilização dos dois vai variar do seu objetivo ao "cuspir" o conteúdo de uma variável. Se o seu objetivo é ver o que tem dentro rápido pode usar o print_r se o objeto é ver exatamente o que tem e qual o tipo de dados armazenados na variável então a melhor opção é o var_dump.

 

Exercicios

Corrija os códigos abaixo:
Teste linha a linha numerando as com erro e sugerindo a correção na parte de comentário ai embaixo.

 

  1. <?php
  2.  
  3. print ("Olá ", "Thiago");
  4. echo "Thiago";
  5. var_dump(echo "Thiago");
  6. print_r("Thiago");
  7.  
  8. ?>

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *