print_r()
La función print_r() es una función integrada de PHP que imprime una representación legible de una variable. Se usa comúnmente para depuración.
Introducción
print_r() es una función integrada de PHP que imprime una representación legible para humanos de una variable. Para escalares (cadenas, números, booleanos) simplemente imprime el valor, pero su verdadero valor está con arrays y objetos: muestra las claves y valores como un árbol con sangría, para que puedas ver la estructura de un vistazo.
Es una de las tres funciones de depuración principales en PHP, junto con var_dump() y var_export(). Usa print_r() cuando quieras un vistazo rápido y legible a lo que hay dentro de una variable.
Sintaxis
print_r(mixed $value, bool $return = false): string|true| Parámetro | Descripción |
|---|---|
$value | La variable a mostrar. Cualquier tipo: escalar, array u objeto. |
$return | Opcional. Cuando es false (el valor predeterminado), la salida se imprime directamente. Cuando es true, la salida se devuelve como string en lugar de imprimirse, para que puedas capturarla en una variable. |
El valor de retorno depende de $return: con el valor predeterminado false devuelve true; con true devuelve el string formateado.
Imprimir un array
print_r() muestra arrays anidados como un árbol con sangría, lo que facilita la lectura de datos de varios niveles:
Cada clave aparece como [key] => value, y el array anidado roles aparece con sangría bajo su padre:
Array
(
[name] => Alice
[age] => 30
[roles] => Array
(
[0] => admin
[1] => editor
)
)Capturar la salida como string
Pasa true como segundo argumento para devolver el texto formateado en lugar de imprimirlo. Esto es útil para escribir la estructura en un archivo de log, incluirla en un mensaje de error o envolverla en HTML:
<?php
$data = ["x" => 1, "y" => 2];
$text = print_r($data, true); // captured, not printed
error_log($text); // e.g. send it to the log
echo strtoupper(substr($text, 0, 5)); // prints: ARRAY
?>Consejo: envuélvela en <pre> para el navegador
En una página web, los navegadores colapsan la sangría y los saltos de línea en los que se basa print_r(), por lo que la salida parece una sola línea continua. Envuélvela en una etiqueta <pre> (o captura con $return y muéstrala dentro de <pre>) para mantener el formato legible:
<?php
echo "<pre>";
print_r($person);
echo "</pre>";
?>print_r() vs. var_dump() vs. var_export()
Estas tres funciones inspeccionan variables, pero sirven para diferentes necesidades:
print_r()— la más legible. Ideal para una revisión rápida a ojo humano de la estructura. No muestra tipos de datos ni longitudes de string.var_dump()— muestra el tipo y tamaño de cada valor (int(30),string(5) "Alice"), y puede imprimir varias variables a la vez. Ideal cuando el tipo importa (por ejemplo, para distinguir0,"0",falseynull).var_export()— genera código PHP válido que recrea la variable. Ideal cuando quieres un valor que puedas pegar de vuelta en el código fuente o en caché.
Si solo necesitas saber qué tipo tiene una variable, gettype() es más directo.
Conclusión
print_r() es la más amigable de las herramientas de inspección de PHP: imprime arrays y objetos como un árbol limpio y con sangría que es fácil de revisar durante la depuración. Usa el modo predeterminado para volcar una variable directamente en la salida, pasa true para capturar el resultado como string, y envuelve la llamada en <pre> cuando la visualices en un navegador. Cuando también necesites tipos y tamaños, cambia a var_dump(); cuando necesites código PHP reutilizable, usa var_export().