ホームページ  >  記事  >  バックエンド開発  >  デバッグ中の PHP の echo print() print_r() var_dump() の違いの詳細な紹介

デバッグ中の PHP の echo print() print_r() var_dump() の違いの詳細な紹介

黄舟
黄舟オリジナル
2017-03-27 09:56:551814ブラウズ

echo

1 つ以上の値 (string) をカンマで区切って出力します。 echo は言語構造体であり、実際の 関数 ではないため、の一部として使用することはできません。

print()

関数 print() は値 (パラメータ) を出力し、文字列が正常に表示された場合は true を返し、それ以外の場合は false を返します。 echo と同じですが、echo よりも遅いです。

print_r()

文字列、整数、または浮動小数点数が与えられた場合、変数の値自体が出力されます。オブジェクトは配列に似ています。一方、配列は、配列から始まるキーと値の括弧で囲まれたリストとして表示されます。 print_r() は配列ポインタを最後に移動することに注意してください。ポインタを先頭に戻すには、reset() を使用します。

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

print_r($arr);

出力形式は次のようになります:

Array{
     [name] => bob,

     [age] => 20,

     [sex] => man
}

しかし、print_r()を使用してブール値を表示するのは無意味であり、NULL:

例:

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

print_r()がブール値を出力するのは無意味です値と NULL の結果はすべて「n」を出力するためです。したがって、var_dump() 関数を使用する方がデバッグに適しています。

var_dump()

変数の型と長さを決定し、変数の値を出力します。変数に値がある場合は、変数の値が出力され、データ型が返されます。 。この関数は、式のタイプや値など、1 つ以上の式に関する構造情報を表示します。配列は値を 再帰的 展開し、インデントによって構造を表示します。

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()

print_r や var_dump に似ていますが、ほとんど使用されません。

var_dumpとprint_rの違い

var_dumpは式の型と値を返しますが、print_rは結果のみを返します コードをデバッグするためにvar_dumpを使用するよりも読みやすいです。

print_r()、var_export()、var_dump()の違いは以下の通りです:

二次元配列の出力:

$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 "
";

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
        )

)
の出力

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) 出力結果

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)

json 形式での出力は以下の通りです:

$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) 出力

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

var_export($arra) 出力

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

var_dump($arra)出力

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

以上がデバッグ中の PHP の echo print() print_r() var_dump() の違いの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。