8768 sujets
Développement web côté serveur, CMS
Bonjour,
print_r() affiche les variables mais pas leur type.
var_dump() affiche les variables avec leur type.
Bon aussi à connaître:
var_export() affiche le code PHP valide, que tu peux par exemple réutiliser par la suite.
Autre point important: si tu utiliser l'extension PHP xdebug (ce que je te conseille), seul var_dump() affichera un code proprement formatté.
print_r() affiche les variables mais pas leur type.
var_dump() affiche les variables avec leur type.
Bon aussi à connaître:
var_export() affiche le code PHP valide, que tu peux par exemple réutiliser par la suite.
Autre point important: si tu utiliser l'extension PHP xdebug (ce que je te conseille), seul var_dump() affichera un code proprement formatté.
<?php
$test_array = [
'exemple',
true,
[
'tableau' => 'valeur'
]
];
print_r($test_array);
var_dump($test_array);
var_export($test_array);
// print_r output:
Array ( [0] => exemple [1] => 1 [2] => Array ( [tableau] => valeur ) )Array ( [0] => exemple [1] => 1 [2] => Array ( [tableau] => valeur ) )
// var_dump output:
array (size=3)
0 => string 'exemple' (length=7)
1 => boolean true
2 =>
array (size=1)
'tableau' => string 'valeur' (length=6)
// var_export output:
array ( 0 => 'exemple', 1 => true, 2 => array ( 'tableau' => 'valeur', ), )
Le code de Migli te montre la différence entre les trois utilisation donc on parle ici :
et pour chaque on a un affichage diffèrent
il a mit un commentaire à chaque fois au dessus de la ligne montrant le "résultat"
// print_r output:
// var_dump output:
// var_export output:
Ce n'est pas de code "PHP" mais ça correspond à ce que ton navigateur va t'afficher pour chaque fonctions nommés
print_r($test_array);
var_dump($test_array);
var_export($test_array);
et pour chaque on a un affichage diffèrent
il a mit un commentaire à chaque fois au dessus de la ligne montrant le "résultat"
// print_r output:
// var_dump output:
// var_export output:
Ce n'est pas de code "PHP" mais ça correspond à ce que ton navigateur va t'afficher pour chaque fonctions nommés
C'est un code d'illustration des différences de résultat entre chaque fonction.
Il crée un tableau pour servir d'exemple puis il affiche la sortie que l'on obtient pour chaque fonction lorsqu'elle est utilisé sur le tableau d'exemple.
Personnellement j'ai tendance à préférer var_dump que je trouve plus lisible.
Mais dans certains contextes où j'utilise la fonction error_log, je la combine avec var_export ou print_r car avec var_dump par défaut le résultat est lamentable et il faut rajouté d'autres trucs (ob_start puis d'autres trucs que je ne me souviens jamais ..)
Il crée un tableau pour servir d'exemple puis il affiche la sortie que l'on obtient pour chaque fonction lorsqu'elle est utilisé sur le tableau d'exemple.
Personnellement j'ai tendance à préférer var_dump que je trouve plus lisible.
Mais dans certains contextes où j'utilise la fonction error_log, je la combine avec var_export ou print_r car avec var_dump par défaut le résultat est lamentable et il faut rajouté d'autres trucs (ob_start puis d'autres trucs que je ne me souviens jamais ..)
Je fais souvent comme ça c'est pour ça que je préfère var_dump en général
Mais non la je parle de manière spécifique avec la fonction error_log pour faire de la sortie en fichier de log plutôt que directement sur la page.
En gros le résultat de error_log(var_dump($toto)); est illisible, ce qui n'est pas le cas avec print_r et var_export. De mémoire :
error_log(print_r($toto)) fonctionne directement
error_log(var_export($toto,1)) il faut penser à rajouter le ,1 en 2e paramètre de var_export pour que cela fonctionne
Mais non la je parle de manière spécifique avec la fonction error_log pour faire de la sortie en fichier de log plutôt que directement sur la page.
En gros le résultat de error_log(var_dump($toto)); est illisible, ce qui n'est pas le cas avec print_r et var_export. De mémoire :
error_log(print_r($toto)) fonctionne directement
error_log(var_export($toto,1)) il faut penser à rajouter le ,1 en 2e paramètre de var_export pour que cela fonctionne