PHP Salida de una vista estructurada de arrays y objetos


Ejemplo

print_r() - Arreglos y objetos de salida para la depuración

print_r generará un formato legible por humanos de una matriz u objeto.

Puede tener una variable que sea una matriz u objeto. Intentar emitirlo con un echo arrojará el error:
Notice: Array to string conversion . En su lugar, puede usar la función print_r para volcar un formato legible por humanos de esta variable.

Puede pasar verdadero como segundo parámetro para devolver el contenido como una cadena.

$myobject = new stdClass();
$myobject->myvalue = 'Hello World';
$myarray = [ "Hello", "World" ];
$mystring = "Hello World";
$myint = 42;

// Using print_r we can view the data the array holds.
print_r($myobject);
print_r($myarray);
print_r($mystring);
print_r($myint);

Esto da como resultado lo siguiente:

stdClass Object
(
    [myvalue] => Hello World
)
Array
(
    [0] => Hello
    [1] => World
)
Hello World
42

Además, la salida de print_r se puede capturar como una cadena, en lugar de simplemente hacer eco. Por ejemplo, el siguiente código $myarray versión formateada de $myarray en una nueva variable:

$formatted_array = print_r($myarray, true);

Tenga en cuenta que si está viendo la salida de PHP en un navegador y se interpreta como HTML, los saltos de línea no se mostrarán y la salida será mucho menos legible a menos que haga algo como

echo '<pre>' . print_r($myarray, true) . '</pre>';

Al abrir el código fuente de una página también se formateará su variable de la misma manera sin el uso de la etiqueta <pre> .

Alternativamente, puede decirle al navegador que lo que está generando es texto simple y no HTML:

header('Content-Type: text/plain; charset=utf-8');
print_r($myarray);

var_dump() : genera información de depuración legible para el ser humano sobre el contenido de los argumentos, incluido su tipo y valor

La salida es más detallada en comparación con print_r porque también genera el tipo de la variable junto con su valor y otra información como ID de objeto, tamaños de matriz, longitudes de cadena, marcadores de referencia, etc.

Puede usar var_dump para generar una versión más detallada para la depuración.

var_dump($myobject, $myarray, $mystring, $myint);

La salida es más detallada:

object(stdClass)#12 (1) {
  ["myvalue"]=>
  string(11) "Hello World"
}
array(2) {
  [0]=>
  string(5) "Hello"
  [1]=>
  string(5) "World"
}
string(11) "Hello World"
int(42)

Nota : Si está utilizando xDebug en su entorno de desarrollo, la salida de var_dump está limitada / truncada de forma predeterminada. Consulte la documentación oficial para obtener más información sobre las opciones para cambiar esto.


var_export() - Código PHP salida válido

var_export() vuelca una representación de PHP analizable del elemento.

Puede pasar verdadero como segundo parámetro para devolver el contenido a una variable.

var_export($myarray);
var_export($mystring);
var_export($myint);

La salida es un código PHP válido:

array (
  0 => 'Hello',
  1 => 'World',
)
'Hello World'
42

Para poner el contenido en una variable, puedes hacer esto:

$array_export = var_export($myarray, true);
$string_export = var_export($mystring, true);
$int_export = var_export($myint, 1); // any `Truthy` value

Después de eso, puedes mostrarlo así:

printf('$myarray = %s; %s', $array_export, PHP_EOL);
printf('$mystring = %s; %s', $string_export, PHP_EOL);
printf('$myint = %s; %s', $int_export, PHP_EOL);

Esto producirá la siguiente salida:

$myarray = array (
  0 => 'Hello',
  1 => 'World',
);
$mystring = 'Hello World';
$myint = 42;