php中var_dump()函数的详解说明

文章给大家全面的介绍一下关于PHP中var_dump()函数用法详解,大家可参考参考。

var_dump()

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

var_dump()方法是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.
函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
例1:
 

  1. $a = alsdflasdf;a;  
  2. $b = var_dump($a);  
  3. echo   
  4. ;  
  5. //var_dump($c);  
  6. $d=var_dump($c);  
  7. echo   
  8. ;  
  9. echo $a;  
  10. echo   
  11. ;  
  12. echo $b;  
  13. echo   
  14. ;  
  15. 输出:  
  16. string(12) alsdflasdf;a 
  17. NULL  
  18. alsdflasdf;a 

例2:1. var_dump() 示例

  1.     $a = array (1, 2, array (abc));  
  2. var_dump ($a);  
  3.    
  4. /* 输出: array(3) {   [0]=>   int(1)   [1]=>   int(2)   [2]=>   array(3) {     [0]=>     string(1) a     [1]=>     string(1) b     [2]=>     string(1) c   } }
  5. */ 
  6. $b = 3.1; $c = TRUE; var_dump($b,$c);  
  7. /* 输出: float(3.1) bool(true)
  8. */ ?> 

  var_export和serialize做数组缓存

$str = serialize($arr); 这两种机制转换之后的字符串是不一样的,第一种是数组的原型模式,第二种是序列化后的形式。第一 种存入文件中的只要加上标签,就形式了一个可用的数组原型,对调用来说,不用转换,直接返回这个数组就可以,但第二种,则需要再用一次unserialize函数反序 列化一下。对于第种一说,就多了一步操作。下来我们用数据说话吧:


  1. set_time_limit(50); $a = array(1,2,3); $b = array('a'=>1, 'b'=>2, 'c'=>3); $c = array('a'=>array(1,3), 'b'=>array(4,5,6));  
  2. $time1 = microtime(true);  
  3. $times = 1000000; #10w  
  4. for($i=1; $i<=$times$i++){  $A = var_export($a, true); }  
  5. $time2 = microtime(true);  
  6. for($i=1; $i<=$times$i++){  $B = var_export($b, true); }  
  7. $time3 = microtime(true);  
  8. for($i=1; $i<=$times$i++){  $C = var_export($c, true); }  
  9. $time4 = microtime(true);  
  10. for($i=1; $i<=$times$i++){  $X = serialize($a); }  
  11. $time5 = microtime(true);  
  12. for($i=1; $i<=$times$i++){  $Y = serialize($b); }  
  13. $time6 = microtime(true);  
  14. for($i=1; $i<=$times$i++){  $Z = serialize($c); }  
  15. $time7 = microtime(true);  
  16. for($i=1; $i<=$times$i++){  $O = unserialize($X); }  
  17. $time8 = microtime(true);  
  18. for($i=1; $i<=$times$i++){  $P = unserialize($Y); }  
  19. $time9 = microtime(true);  
  20. for($i=1; $i<=$times$i++){  $Q = unserialize($Z); } $time10 = microtime(true);  
  21. $var_export_time['a'] = $time2 - $time1$var_export_time['b'] = $time3 - $time2$var_export_time['c'] = $time4 - $time3;  
  22. $serialize_time['a'] = $time5 - $time4$serialize_time['b'] = $time6 - $time5$serialize_time['c'] = $time7 - $time6;  
  23. $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时间 差不多。

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...