PHP propose deux fonctions restées longtemps non documentées : print_r() et var_dump().

La fonction print_r() reçoit en argument le nom d'une variable ou d'un objet et affiche le schéma lisible de cette variable ou de cet objet. Si la chose ne présente aucun intérêt pour une variable de type chaîne ou entière, il en va tout autrement pour un tableau. La représentation visuelle obtenue est intéressante.

C'est encore plus frappant avec la fonction var_dump(), la structure est encore plus claire : types et valeurs sont alors présentés avec une mise en forme (indentation).

Un exemple sera plus parlant. Soit le code suivant :

<?php
class Truc { 
    var $x; 

    function setX($v) { 
        $this->x=$v; 
    } 

    function getX() { 
        return $this->x; 
    } 
} 

$objet = new Truc;
$objet->setX(666); 

$tableau = array (1, 2, array ("pomme", 9 , "cerise"));

print_r ($tableau);
var_dump ($tableau);

print_r ($objet);
var_dump ($objet);
?>
Ce script se contente de définir une classe Truc et de créer l'objet $objet. Il sert également à définir un tableau $tableau.
Puis, il applique les fonctions print_r() et var_dump() à ces deux variables.

Le résultat obtenu est le suivant :

chevesne:~$ php -q test.php3 
Array
(
    [0] => 1
    [1] => 2
    [2] => Array
        (
            [0] => pomme
            [1] => 9
            [2] => cerise
        )

)
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(5) "pomme"
    [1]=>
    int(9)
    [2]=>
    string(6) "cerise"
  }
}
truc Object
(
    [x] => 666
)
object(truc)(1) {
  ["x"]=>
  int(666)
}
C'est assez visuel non ? :)

fonction print_r()
fonction var_dump()