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.

<?php
echo "Olá Thiago";
echo 'Olá Thiago';
echo ("Olá Thiago");
echo "Olá ", "Thiago";
echo ("Olá", "Thiago");
print "Olá Thiago";
print ("Olá Thiago");
//a saída para os "echos" e os print serão
//Olá Thiago;
?>

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.

<html>
<head>
<title><?php echo "Titulo da página";?></title>
</head>
<body>
<h1>Meu site em PHP</h1>
</body>
</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.

<?php
$nome = "Thiago";
$idade = 26;
// utilizando o print_r
print_r($nome);
print_r($idade);
/** a saída aqui será:
 *  Thiago
 *  26
 */
// usando o var_dump
var_dump($nome);
var_dump($idade);
/**
 * A saída aqui será
 * string(6) "Thiago"
 * int(26)
 */
?>

Exemplos com variáveis complexas.

<?php
$obj = new StdClass();
$obj->nome = "Thiago";
$obj->obj = new StdClass();
$obj->obj->idade = 26;
var_dump($obj);
/**
 * a sua saída será:
 * object(stdClass)#1 (2) {
 *   ["nome"]=>
 *   string(6) "Thiago"
 *   ["obj"]=>
 *   object(stdClass)#2 (1) {
 *     ["idade"]=>
 *     int(26)
 *  }
 * }
**/
print_r($obj);
/**
 * a sua saída será:
 * stdClass Object
 * (
 *    [nome] => Thiago
 *    [obj] => stdClass Object
 *        (
 *            [idade] => 26
 *        )
 *
 * )
*/
?>

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.

 

<?php
print ("Olá ", "Thiago");
echo "Thiago";
var_dump(echo "Thiago");
print_r("Thiago");
var_dump(26);
?>

 

Uma ideia sobre “Parte 1 – “echo print var_dump print_r”

Deixe uma resposta

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.