好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

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,var_dump() 示例,代码如下:

<?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)   */   ?> 

var_export和serialize做数组缓存

$str = serialize($arr);

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

<?php  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:   //开源代码phpfensi测试数据   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时间差不多.

查看更多关于php中var_dump()函数的详解说明 - php函数的详细内容...

  阅读:43次