Me gustó tu pregunta, encontré una relacionada en el sitio en inglés, puedes darle un vistazo aquí, me tomaré el tiempo de traducir parte de lo respuesta con mejor votación en la pregunta anteriormente mencionada, empecemos:
- Muestra una representación más entendible de un solo valor cualquiera
- No solo acepta cadenas, también acepta arreglos y objetos formateándolos para ser visualizados de una forma más entendible
- Puede devolver su valor de salida como un valor de retorno si le pasa
true
como su segundo argumento
- Útil para la depuración
Ejemplo: Si tenemos el siguiente arreglo:
$a = array ('a' => 'manzana', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
Nuestro print_r($a);
nos devolverá algo como esto:
Array
(
[a] => manzana
[b] => banana
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)
- Muestra una representación más entendible de un valor cualquiera o más separados por comas
- No solo acepta cadenas, también acepta arreglos y objetos formateándolos para ser visualizados de una forma más entendible
- Usa un formato diferente al anterior
print_r()
, por ejemplo, también muestra el tipo del valor
- Útil para la depuración
- No tiene un valor de retorno
Ejemplo: Si tenemos el siguiente arreglo:
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
Nuestro var_dump($a);
nos devolverá algo como esto: (nótese que nos muestra el tipo de valor de cada elemento en nuestro arreglo)
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
- Muestra una representación más entendible y ejecutable de un valor cualquiera
- No solo acepta cadenas, también acepta arreglos y objetos formateándolos para ser visualizados de una forma más entendible
- Usa un formato de salida diferente de
var_dump()
y print_r()
, la salida es un código de PHP válido
- Útil para la depuración
- Puede devolver su valor de salida como un valor de retorno si le pasa
true
como su segundo argumento
Ejemplo, si realizamos lo siguiente
class A {
public $var;
}
$a = new A;
$a->var = 5;
var_export($a);
Obtendremos como resultado:
A::__set_state(array(
'var' => 5,
))
NOTAS
echo
es mucho más rápido que print
echo
y print
son constructores de lenguaje
print_r()
y var_dump()
son funciones
echo
y print
pueden recibir sus argumentos mediante paréntesis como una función echo("Hello", "world");
ó print("Hello World");