var_dump()の使い方

3098 ワード

var_dump()
void var_dump ( mixed expression [, mixed expression [, ...]] )
var_dump()メソッドは、1つの変数のタイプと長さを判断し、変数の数値を出力し、変数に値がある場合は変数の値を入力データ型に戻す.
この関数には、式のタイプと値を含む1つ以上の式に関する構造情報が表示されます.配列は値を再帰的に展開し、構造をインデントで表示します.
例1
コードは次のとおりです.
$a = "alsdflasdf;a"; $b = var_dump($a); echo "";//var_dump($c); $d=var_dump($c); echo ""; echo $a; echo ""; echo $b; echo ""; 出力:string(12)「alsdflasdf;a」NULL alsdflasdf;a
例2
1. var_dump()例
コードは次のとおりです.
   $a = array (1, 2, array ("a", "b", "c"));
var_dump ($a);
/*出力:array(3){[0]=>int(1)[1]=>int(2)[2]=>array(3){[0]=>string(1)「a」[1]=>string(1)「b」[2]=>string(1)「c」}*/$b=3.1;c = TRUE; var_dump($b,$c); /* 出力:float(3.1)bool(true)*/?>   
  var_exportとserializeは配列キャッシュをします
$str = serialize($arr); この2つのメカニズム変換後の文字列は異なり,1つ目は配列のプロトタイプモードであり,2つ目はシーケンス化後の形式である.1つ目のファイルに格納されているのはラベルを付けるだけで利用可能な配列プロトタイプを形式化しており、呼び出しには変換せずにこの配列に直接戻ることができますが、2つ目はunserialize関数をもう一度逆シーケンス化する必要があります.第1の言い方に対して、1歩多く操作しました.データで話しましょう
 
コードは次のとおりです.
set_time_limit(50); $a = array(1,2,3); $b = array('a'=>1, 'b'=>2, 'c'=>3); $c = array('a'=>array(1,2,3), 'b'=>array(4,5,6)); $time1 = microtime(true); $times = 1000000; #10w for($i=1; $i<=$times; $i++){  $A = var_export($a, true); } $time2 = microtime(true); for($i=1; $i<=$times; $i++){  $B = var_export($b, true); } $time3 = microtime(true); for($i=1; $i<=$times; $i++){  $C = var_export($c, true); } $time4 = microtime(true); for($i=1; $i<=$times; $i++){  $X = serialize($a); } $time5 = microtime(true); for($i=1; $i<=$times; $i++){  $Y = serialize($b); } $time6 = microtime(true); for($i=1; $i<=$times; $i++){  $Z = serialize($c); } $time7 = microtime(true); for($i=1; $i<=$times; $i++){  $O = unserialize($X); } $time8 = microtime(true); for($i=1; $i<=$times; $i++){  $P = unserialize($Y); } $time9 = microtime(true); for($i=1; $i<=$times; $i++){  $Q = unserialize($Z); } $time10 = microtime(true); $var_export_time['a'] = $time2 - $time1; $var_export_time['b'] = $time3 - $time2; $var_export_time['c'] = $time4 - $time3; $serialize_time['a'] = $time5 - $time4; $serialize_time['b'] = $time6 - $time5; $serialize_time['c'] = $time7 - $time6; $unserialize_time['a'] = $time8 - $time7; $unserialize_time['b'] = $time9 - $time8; $unserialize_time['c'] = $time10 - $time9; print_r($var_export_time); print_r($serialize_time); print_r($unserialize_time); ?> output: Array(    [a] => 3.3401498794556    [b] => 5.1394801139832    [c] => 8.8483898639679)Array(    [a] => 1.6063709259033    [b] => 1.7033960819244    [c] => 3.4534389972687)Array(    [a] => 1.6037359237671    [b] => 1.817803144455    [c] => 3.7992968559265)
上のデータで説明します:var_export関数のパフォーマンスはserialize関数のパフォーマンスより2倍悪いが、unserialize時間もserializeとあまり差がない時間が必要であり、serializeにunserialize時間を加え、var_exportは時間差が少ない.