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" est disponible. Il vous permettra de recevoir chaque semaine un kata de code directement dans votre boîte mail, ainsi que des aides à la réalisation, des vidéos explicatives et des défis supplémentaires.