Inspecionando variáveis PHP com var_export

Em: 19/03/2008 Tags: Referencie do seu blog (Trackback)

Até pouco tempo minha única opção para imprimir o conteúdo de uma variável PHP era a função var_dump, que imprime o conteúdo de uma variável com uma saída bastante legível. O uso dessa função, porém, é bastante limitado uma vez que ela não retorna nenhum valor, simplesmente imprime o valor da variável passada como parâmetro. Imagine-se agora tentando encontrar aquele bug em uma aplicação Ajax. Você não pode utilizar var_dump para isso, pois essa saída não chegará até o lado do cliente. Ou você pode estar adotando uma prática de desenvolvimento onde tudo que você “loga” é escrito em um arquivo que você inspeciona continuamente com tail -f meu_arquivo_de_log.txt.

Para esse tipo de situações utilize var_export. O primeiro parâmetro da função é a variável que você deseja inspecionar. Por padrão, se o segundo parâmetro não for definido o conteúdo da variável será impresso, como acontece com var_dump. Mas se definirmos o segundo parâmetro como true, então o resultado dessa inspeção é retornado, e não impresso. Podemos então direcioná-lo para um arquivo de log, e então resolver problemas em aplicações Ajax mais facilmente.

O seguinte programa:

$numbers = array(1,2,3);
$tmp = var_export($numbers, true);
echo $tmp;

Resultará em:

array (
  0 => 1,
  1 => 2,
  2 => 3,
)

Outra diferença fundamental entre var_dump e var_export é que a segunda retorna código executável. Se você irá tirar proveito disso já é outra história.

Artigos relacionados:

Uma resposta para “Inspecionando variáveis PHP com var_export”

  1. Éverton disse:

    Save Caio,

    Fica aqui a dica pra quem utiliza o vardump, o uso da extensão http://xdebug.org, ela melhora em muito a saída do vardump, destacando com cores os diferentes tipos de dados dentro da variável, limitando o número de interações (quando a variável for um array) dentre outras opções bem legais.

Escreva um comentário (utilize o formato Markdown)