php中var_dump()函数
var_dump()
void var_dump ( mixed expression [, mixed expression [, ...]] )
var_dump()⽅法是判断⼀个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.
此函数显⽰关于⼀个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显⽰其结构。
例⼦:
$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
例⼦:
$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); 这两种机制转换之后的字符串是不⼀样的,第⼀种是数组的原型模式,第⼆种是序列化后的形式。第⼀种存⼊⽂件中的只要加上标签,就形式了⼀个可⽤的数组原型,对调⽤来说,不⽤转换,直接返回这个数组就可以,但第⼆种,则需要再⽤⼀次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); }
字符串函数php
$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时间差不多。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。