Alternativa a var_dump en PHP para obtener detalles de una variable
Introducción
En PHP existe una función llamada var_dump que imprime toda una variable, sin importar el tipo de esta. Puede imprimir arreglos, objetos, cadenas, enteros, etcétera.
Esto va bien si queremos imprimirlo directamente como si hiciéramos un echo o un printf, pero ¿qué pasa si queremos guardar el contenido de una variable en lugar de imprimirla?
Por ejemplo, si queremos llevar un log para todas las variables, necesitamos guardarlas detalladamente, pero no imprimirlas.
var_export al rescate
PHP proporciona una función llamada var_export que funciona como var_dump pero en lugar de imprimirla directamente, da la opción de devolverla para que la podamos guardar o hacer lo que sea con ella.
Para utilizarla, su sintaxis es:
var_export($tu_variable, $devolverlaEnLugarDeImprimirla);
Por lo que para obtenerla, siempre la llamaremos con true en el segundo parámetro.
Ejemplo
Para obtener la representación de una variable, llamamos a var_export con la variable como primer argumento y true como segundo argumento.
<?php $variable = [ "nombre" => "Juan Pérez", "edad" => 40 ]; $representacion = var_export($variable, true); ?>
Una vez hecho esto podemos guardar la representación si lo deseamos. En este caso la guardaré en un archivo:
<?php $variable = [ "nombre" => "Juan Pérez", "edad" => 40 ]; $representacion = var_export($variable, true); file_put_contents("representacion.txt", $representacion); ?>
Al ejecutar este código, el archivo de texto se ve así:
array ( 'nombre' => 'Juan Pérez', 'edad' => 40, )
Con ello podemos loguear y controlar representación de cualquier tipo de variable en PHP.