W3docs

var_export()

A função var_export() do PHP gera uma representação em código PHP válido de uma variável, útil para cache e depuração.

Introdução

var_export() é uma função nativa do PHP que produz uma representação em código PHP válido de uma variável. Diferentemente de um simples print, a string retornada é analisável: você pode copiá-la de volta para um arquivo .php (ou passá-la para eval()) e obter um valor idêntico. Isso a torna ideal para:

  • Gerar arquivos de configuração ou dados em cache — grave o export no disco e use require depois.
  • Inspecionar a estrutura exata de uma variável durante a depuração.
  • Capturar valores esperados em testes e documentação.

Esta página cobre a sintaxe, o parâmetro $return, como cada tipo de dado é renderizado, e como var_export() difere de var_dump() e print_r().

Sintaxe

var_export(mixed $value, bool $return = false): ?string
ParâmetroDescrição
$valueA variável ou expressão a exportar.
$returnQuando false (padrão), a representação é impressa diretamente e a função retorna null. Quando true, a representação é retornada como string em vez de ser impressa.

O erro mais comum é esquecer o segundo argumento: $result = var_export($x); deixa $result como null porque a saída foi diretamente para stdout. Para capturá-la, passe true.

Exemplo básico

php— editable, runs on the server

Aqui $var1 é um inteiro, $var2 uma string e $array um array indexado. Cada chamada retorna uma string que é ela própria PHP válido:

10
'Hello, world!'
array (
  0 => 'apple',
  1 => 'banana',
  2 => 'cherry',
)

Observe que strings são envolvidas em aspas simples e arrays mantêm suas chaves explícitas — a saída de um array poderia ser atribuída diretamente a uma variável.

Como cada tipo é renderizado

<?php
var_export(true);   echo "\n"; // true
var_export(null);   echo "\n"; // NULL
var_export(3.14);   echo "\n"; // 3.14
var_export('a');    echo "\n"; // 'a'

$assoc = ['name' => 'Ann', 'age' => 30];
var_export($assoc); echo "\n";
?>

Saída:

true
NULL
3.14
'a'
array (
  'name' => 'Ann',
  'age' => 30,
)

Booleanos se tornam true/false, null se torna o NULL em maiúsculas, e arrays associativos preservam suas chaves string — tudo PHP sintaticamente válido.

Exportando objetos

Para objetos, var_export() emite uma chamada __set_state() para que a estrutura possa, em princípio, ser reconstruída:

<?php
class Point {
    public int $x = 1;
    public int $y = 2;
}
var_export(new Point());
?>
\Point::__set_state(array(
   'x' => 1,
   'y' => 2,
))

Para reconstruir tal objeto a partir do export, a classe deve definir um método estático __set_state(). Sem ele, avaliar a saída gera um erro — portanto, para serializar e desserializar objetos, serialize() geralmente é uma opção melhor.

var_export() vs. var_dump() vs. print_r()

FunçãoFormato de saídaMostra tipos?Retornável como string?PHP válido?
var_export()Código PHP analisávelImplicitamenteSim ($return = true)Sim
var_dump()Tipo + valor + comprimentoSim (explícito)Não (apenas imprime)Não
print_r()Árvore legível por humanosNãoSim (2º argumento)Não

Use var_export() quando precisar de código que possa ser armazenado ou re-executado, var_dump() quando precisar de tipos e comprimentos de strings para depuração, e print_r() para uma visualização rápida e legível.

Um uso prático: arquivos de dados em cache

Como o export é PHP válido, você pode persistir dados computados e carregá-los rapidamente na próxima requisição:

<?php
$config = ['debug' => true, 'level' => 3, 'tags' => ['a', 'b']];

// Write a loadable PHP file.
file_put_contents('cache.php', '<?php return ' . var_export($config, true) . ';');

// Later, somewhere else:
$loaded = require 'cache.php';
?>

$loaded é idêntico ao array $config original — sem necessidade de analisar JSON ou desserializar.

Conclusão

var_export() transforma uma variável em código PHP pronto para execução. Passe $return = true para capturar esse código como string, lembre-se que null é impresso como NULL e strings usam aspas simples, e opte por serialize() quando precisar serializar objetos. Para depuração com informação de tipos, compare com var_dump() e print_r().

Prática

Prática
Qual é o uso da função var_export() no PHP?
Qual é o uso da função var_export() no PHP?
Was this page helpful?