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); /* 输出: */ $b = 3.1; /* 输出: */ |
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++){ $time2 = microtime(true); for($i=1; $i<=$times; $i++){ $time3 = microtime(true); for($i=1; $i<=$times; $i++){ $time4 = microtime(true); for($i=1; $i<=$times; $i++){ $time5 = microtime(true); for($i=1; $i<=$times; $i++){ $time6 = microtime(true); for($i=1; $i<=$times; $i++){ $time7 = microtime(true); for($i=1; $i<=$times; $i++){ $time8 = microtime(true); for($i=1; $i<=$times; $i++){ $time9 = microtime(true); for($i=1; $i<=$times; $i++){ $var_export_time['a'] = $time2 - $time1; $serialize_time['a'] = $time5 - $time4; $unserialize_time['a'] = $time8 - $time7; |
由上面数据说明:
var_export函数性能比serialize函数性能差一倍,而 unserialize时间也需要和serialize差不多的时间,serialize加上unserialize时间,和用var_export时间 差不多。