Depuis la version 4.3.0 de PHP, il est possible de stocker le flux de retour obtenu par la fonction print_r() dans une variable. Pour cela, il faut utiliser un argument logique optionnel.

Exemple :

<?php
// Affichage direct
print_r(get_defined_vars());
// Stockage du flux dans la variable $foo
$foo=print_r(get_defined_vars(), true);
?>
A noter que si vous désirez faire la même chose depuis une version plus ancienne de PHP, ca reste possible en utilisant les fonctions d'Output Control (buffering). Exemple :

<?php
ob_start(); 
print_r(get_defined_vars()); 
$foo = ob_get_contents(); 
ob_end_clean();
?>
L'utilisation de print_r() est très utile pour débugguer. La redirection du flux de retour dans une variable peut être utile pour, par exemple, faire un peu de remise en forme (colorisation, italique, etc.).

Fonction print_r()
Output Control