Maison  >  Article  >  développement back-end  >  Introduction détaillée aux différences entre echo print() print_r() var_dump() en PHP lors du débogage

Introduction détaillée aux différences entre echo print() print_r() var_dump() en PHP lors du débogage

黄舟
黄舟original
2017-03-27 09:56:551772parcourir

echo

Affiche une ou plusieurs valeurs (String), séparées par des virgules. echo est une construction de langage, pas une véritable fonction, elle ne peut donc pas être utilisée dans le cadre d'une expression.

print()

La fonction print() imprime une valeur (son paramètre) si la chaîne réussit. vrai si affiché, faux sinon. Identique à l'écho, mais plus lent que l'écho.

print_r()

Vous pouvez simplement imprimer des chaînes et des nombres. Si une chaîne, un entier ou un flottant est donné, il imprimera le. valeur variable elle-même. l'objet est similaire à un tableau. Les tableaux, en revanche, sont affichés sous la forme d'une liste de clés et de valeurs entre parenthèses, commençant par Array. N'oubliez pas que print_r() déplacera le pointeur du tableau vers la fin. Utilisez reset() pour ramener le pointeur au début.

$arr = array('name'=> 'bob','age' => 20, 'sex' => 'man');

print_r($arr);

La sortie est sous la forme :

Array{
     [name] => bob,

     [age] => 20,

     [sex] => man
}

Mais oui, cela n'a aucun sens d'utiliser print_r() pour afficher les valeurs booléennes et NULL:

Par exemple :

print_r(true);           //输出1
print_r(false);          //没有输出
print_r(null);          //没有输出

Les résultats de print_r() qui génèrent des valeurs booléennes et NULL n'ont aucun sens, car ils affichent tous "n". Par conséquent, l’utilisation de la fonction var_dump() est plus adaptée au débogage.

var_dump()

Déterminez le type et la longueur d'une variable et affichez la valeur de la variable si la variable a une valeur. , la sortie est la valeur de la variable et renvoie type de données . Cette fonction affiche des informations structurelles sur une ou plusieurs expressions, y compris le type et la valeur de l'expression. Les tableaux développeront récursivement les valeurs, montrant leur structure via l'indentation.

var_dump(true); //输出 bool(true)
var_dump(false);   // bool(false)
var_dump(null);   // bool(null)
var_dump(array('name' => 'bob', 'age' => 20));
array(2) {
    ['name'] => string(3) 'bob'
    ['age'] => int(20)
}

var_export()

Similaire à print_r et var_dump, mais rarement utilisé.

La différence entre var_dump et print_r

var_dump renvoie le type et la valeur de l'expression tandis que print_r renvoie uniquement le résultat par rapport au code de débogage. , utiliser var_dump est plus pratique Facile à lire.

 Les différences entre print_r(), var_export() et var_dump() sont les suivantes :

Sortie d'un tableau bidimensionnel  :

$arr=array(        
array('a'=>'aa','b'=>'bbb','c'=>'ccc'),        
array('a'=>'ddd','b'=>'eee','c'=>'fff'), 
        array('a'=>'gg','b'=>'hh')
);
echo "<pre class="brush:php;toolbar:false">";
print_r($arr);echo "
";echo "
";
var_export($arr);echo "
";echo "
";
var_dump($arr);echo "
";

La sortie de print_r($arr)

Array(
    [0] => Array
        (
            [a] => aa
            [b] => bbb
            [c] => ccc
        )

    [1] => Array
        (
            [a] => ddd
            [b] => eee
            [c] => fff
        )

    [2] => Array
        (
            [a] => gg
            [b] => hh
        )

)

La sortie de var_export($arr)

array (  0 => 
  array (    &#39;a&#39; => &#39;aa&#39;,    &#39;b&#39; => &#39;bbb&#39;,    &#39;c&#39; => &#39;ccc&#39;,
  ),  1 => 
  array (    &#39;a&#39; => &#39;ddd&#39;,    &#39;b&#39; => &#39;eee&#39;,    &#39;c&#39; => &#39;fff&#39;,
  ),  2 => 
  array (    &#39;a&#39; => &#39;gg&#39;,    &#39;b&#39; => &#39;hh&#39;,
  ),
)

var_dump( $arr ) résultat de la sortie

array (size=3)  0 => 
    array (size=3)    &#39;a&#39; => string &#39;aa&#39; (length=2)     &#39;b&#39; => string &#39;bbb&#39; (length=3)     &#39;c&#39; => string &#39;ccc&#39; (length=3)  1 => 
    array (size=3)    &#39;a&#39; => string &#39;ddd&#39; (length=3)  &#39;b&#39; => string &#39;eee&#39; (length=3)   &#39;c&#39; => string &#39;fff&#39; (length=3)  2 => 
    array (size=2)    &#39;a&#39; => string &#39;gg&#39; (length=2)     &#39;b&#39; => string &#39;hh&#39; (length=2)

Une sortie au format json est donnée ci-dessous :

$arr=array(array(&#39;a&#39;=>&#39;aa&#39;,&#39;b&#39;=>&#39;bbb&#39;,&#39;c&#39;=>&#39;ccc&#39;),           
array(&#39;a&#39;=>&#39;ddd&#39;,&#39;b&#39;=>&#39;eee&#39;,&#39;c&#39;=>&#39;fff&#39;),           
array(&#39;a&#39;=>&#39;gg&#39;,&#39;b&#39;=>&#39;hh&#39;));
$arra=json_encode($arr);echo "<pre class="brush:php;toolbar:false">";
print_r($arra);echo "
";echo "
";
var_export($arra)echo "
";echo "
";
var_dump($arra);echo "
";

print_r($arra) output

[{"a":"aa","b":"bbb","c":"ccc"},{"a":"ddd","b":"eee","c":"fff"},{"a":"gg","b":"hh"}]

sortie var_export($arra)

'[{"a":"aa","b":"bbb","c":"ccc"},{"a":"ddd","b":"eee","c":"fff"},{"a":"gg","b":"hh"}]'

sortie var_dump($arra)

string '[{"a":"aa","b":"bbb","c":"ccc"},{"a":"ddd","b":"eee","c":"fff"},{"a":"gg","b":"hh"}]' (length=84)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn