php中var_dump()函數的詳解說明

來源:互聯網
上載者:User

var_dump()

void var_dump ( mixed expression [, mixed expression [, ...]] )

var_dump()方法是判斷一個變數的類型與長度,並輸出變數的數值,如果變數有值輸的是變數的值並回返資料類型.
此函數顯示關於一個或多個運算式的結構資訊,包括運算式的類型與值。數組將遞迴展開值,通過縮排顯示其結構。


例1

 代碼如下 複製代碼

<?php
$a = "alsdflasdf;a";
$b = var_dump($a);
echo "<br>";
//var_dump($c);
$d=var_dump($c);
echo "<br>";
echo $a;
echo "<br>";
echo $b;
echo "<br>";
輸出:
string(12) "alsdflasdf;a"
NULL
alsdflasdf;a

例2

1. var_dump() 樣本

 代碼如下 複製代碼

<pre>
<?php
$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)

*/
?>
</pre> 

 
var_export和serialize做數組緩衝


$str = serialize($arr);
這兩種機制轉換之後的字串是不一樣的,第一種是數組的原型模式,第二種是序列化後的形式。第一 種存入檔案中的只要加上<?php ?>標籤,就形式了一個可用的數組原型,對調用來說,不用轉換,直接返回這個數組就可以,但第二種,則需要再用一次unserialize函數反序 列化一下。對於第種一說,就多了一步操作。下來我們用資料說話吧:

 

 代碼如下 複製代碼

<?
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函數效能差一倍,而 unserialize時間也需要和serialize差不多的時間,serialize加上unserialize時間,和用var_export時間 差不多。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.