var_dump()

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

来源:   时间:2013-09-05 18:33:53   阅读数:460047

分享到:15

[导读] 本文章给大家全面的介绍一下关于php中var_dump()函数用法详解,大家可参考参考。var_dump()void var_dump ( mixed expression [, mixed expression [, ]] )var_dump()方法是判断一个变量的类型与长

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

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

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

例1

 代码如下 复制代码

$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

例2

1. var_dump() 示例

 代码如下 复制代码
	$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); }

$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时间 差不多

时间: 2024-12-15 10:26:02

var_dump()的相关文章

var_dump() 格式化输出 | 显示不全

PHP 使用‘var_dump($var)’时 没有格式化输出,显得乱糟糟的.原因是没有启用‘XDebug’扩展 [php.ini] ; XDEBUG Extension zend_extension = "x:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11.dll" var_dump()方法输出时候会展示不全出现省略号 解决下 在php.ini里的[xdebug]节点中,追加一下配置: xdebug.var_dis

echo,print(),print_r(),sprintf(),var_dump()的区别

PHP中几个输出函数echo,print(),print_r(),sprintf(),var_dump()的区别 1:echo:是语句不是函数,没有返回值,可输出多个变量值,不需要圆括号.不能输出数组和对象,只能打印简单类型(如int,string). 2:print:是语句不是函数,有返回值 1 ,只能输出一个变量,不需要圆括号.不能输出数组和对象,只能打印简单类型(如int,string). 3:print_r:是函数,可以打印复合类型,例如:stirng.int.float.array.o

echo(),print(),print_r(),var_dump()函数的区别

echo:是PHP语句,语句是没有返回值的,而 print 和 print_r 是函数,函数可以有返回值. print:只能打印出简单类型变量的值(如 int,string) print_r:可以打印出复杂类型变量的值(如数组,对象) echo:输出一个或者多个字符串 var_dump:可以打印出复杂类型变量的值和类型

为什么 var_dump(&quot;1&quot; == &quot;1e0&quot;); 的结果为true

今天,同学问我一个问题,如下:var_dump("1" == "1e0"); 的结果是什么. 我的第一反应,答案是false.因为很明显的要比较的是两个字符串,而字符串比较时,只需比较其内容即可.很明显, 两个字符串的内容并不一样,当然是false了. 然而,我又注意到要比较的字符串中存在一个纯数字字符串"1",那根据规则,当要比较的是两个纯数字字符串时要转换成数值型来比较.这里只有一个.所以仍应该安字符串来比较,结果仍为false. 但实际运行

var_export()和var_dump()

var_export() 函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码.var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量. 而这个变量就会取得和被var_export一样的类型的值.看下面一个简单的例子: 1 <?php 2       3     $arr = array ( 1 , 2 , array ( "apple" , 

输出echo print print_r() var_dump()的区别

echo: 语言结构,echo或echo()均可:能够输出一个以上字符串.可以接受多个参数:当是一次输出多个值,多个值之间用逗号分隔.没有返回值. print: 语言结构(有的地方也说是函数,但不是实际函数,故一般不需要对其使用()),print或print()均可:只能输出一个字符串,只能接受一个参数:并始终返回1.只能打印出简单类型变量的值(如 int,string),不能输出数组和对象. 提示:echo 比 print 稍快,因为它不返回任何值. print_r(): 是函数,有返回值.

php中echo、print、print_r、var_dump、var_export区别

(1) print和echo是语言结构,echo输出多个值,多个值之间用逗号分隔,无返回值:print只能输出一个值,有返回值.echo和print输出整型和字符串,没法打印布尔型,如果true,打印1,false打印为空. (2) print_r()除了输出整型和字符串,还可以输出数组和对象,数组和对象使用键值对形式表示,数组时候array(键值对形式):对象时候Object(键值对形式):没法打印布尔型,如果true,打印1,false和NULL打印为空. (3) var_dump()判断变

【php】echo与var_dump

echo与var_dump的核心功能同样是没有区别的,皆为"输出变量的值",但是echo偏向于产品,给客户看的,调试人员.编程人员更适合使用var_dump来输出变量,在调试的时候,告别难以使用的echo吧! echo只能输出变量的值,var_dump能将变量的值与类型同时输出. 如果不做任何处理,在php中是无法直接输出一个数组的,需要用到一个for循环才可以,如果直接用echo输出一个数组,php会报错,但var_dump却是可以的,还输出得挺完美,无须通过任何的处理. 再有的就是

PHP基础温习之echo print printf sprintf print_r var_dump的用法与区别

原文:PHP基础温习之echo print printf sprintf print_r var_dump的用法与区别 一.echoecho() 实际上不是一个函数,是php语句,因此您无需对其使用括号.不过,如果您希望向 echo() 传递一个以上的参数,那么使用括号会发生解析错误.而且echo是返回void的,并不返回值,所以不能使用它来赋值.例子: 复制代码代码如下: <?php $a = echo("55nav"); // 错误!不能用来赋值 echo "55n