Afficher le contenu d'une variable à l’écran
Il existe bien évidemment plusieurs manières d'afficher le contenu d'une variable à l'écran. Les plus simples étant :
$var = 'a';
echo $var;
// ou
print $var;
// Affiche : a
Savez-vous d'ailleurs que vous pouvez passer plusieurs "arguments" à la fonction echo
?
$foo = "a";
$bar = "b";
echo $foo, "-", $bar;
// Affiche : a-b
Mais dans le cadre de debug, vous pouvez avoir besoin d'afficher des choses plus "complexes", comme un tableau par exemple. Plusieurs choix s'offrent à vous :
var_dump
: va afficher le contenu de la variable ainsi que les types de ce qu'elle contient :$var = 'a';
var_dump($var);
// Affiche : string(1) "a"
Sur un tableau par exemple :
$var = [1, "a", "foo" => "bar"];
var_dump($var);
// Affiche
array(3) {
[0]=>
int(1)
[1]=>
string(1) "a"
["foo"]=>
string(3) "bar"
}
var_export
: celui-ci va vous afficher le contenu de la variable sous une forme que vous n'aurez plus qu'à copier-coller et injecter dans votre code !$var = 'a';
var_export($var);
// Affiche : 'a'
Vous voyez la différence avec echo
? var_export
affiche les quotes autour de la valeur.
Et sur un tableau par exemple :
$var = [1, "a", "foo" => "bar"];
var_export($var);
// Affiche
array (
0 => 1,
1 => 'a',
'foo' => 'bar',
)
Vous n'avez plus qu'à copier-coller ce contenu dans votre code si vous en avez besoin !
var_export
prend aussi en deuxième argument un booléen qui va retourner la valeur plutôt que l'afficher. Pratique si on veut écrire la valeur dans un fichier !
$var = [1, "a", "foo" => "bar"];
file_put_contents('/tmp/debug', var_export($var, true));
Le fichier /tmp/debug
contiendra :
array (
0 => 1,
1 => 'a',
'foo' => 'bar',
)
Mon programme "S'entraîner pour progresser en PHP" va bientôt ouvrir ses portes. Il te permettra de recevoir chaque semaine un kata de code directement dans ta boîte mail, ainsi que des aides à la réalisation, des vidéos explicatives, voire des live coding et de la review.