php中vardump 的作用,php中var_dump、var_export和print_r的用法区别

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

此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。在PHP5里,所有的public、private和protected属性都会被返回输出。

-------------------------------------------------------------

mixed var_export ( mixed $expression [, bool $return ] )

输出或返回一个变量的字符串表示。此函数返回关于传递给改函数的变量的结构信息,它和var_dump()类似,不同的是其返回的表示是合法的PHP代码。

当第二个参数设置位TRUE,可以将返回的变量表示复制给一个变量。

var_export在处理一些递归的结构时会报错,但var_dump不会,因为它可以避免递归的引用。比如:var_export($GLOBALS);会报错,var_dump($GLOBALS);则可以运行。

-------------------------------------------------------------

bool print_r ( mixed $expression [, bool $return ] )

显示关于变量的易于理解的信息。如果给出的事string、integer或float,将打印变量值本身。如果给出的事array,将会按照一定的格式显示键和元素。object与数组类似。记住,print_r()将把数组的指针移到最后边,使用reset()可让指针回到开始处。第二个参数设置为TRUE则可以返回为字符串,可以赋值给变量。

下面对比下三者对数组的输出

$array = array(1, 2, array('a', 'b', 'c'));

var_export($array);

/* 输出:

array (

0 => 1,

1 => 2,

2 =>

array (

0 => 'a',

1 => 'b',

2 => 'c',

),

)

*/

print_r($array);

/* 输出:

Array

(

[0] => 1

[1] => 2

[2] => Array

(

[0] => a

[1] => b

[2] => c

)

)

*/

var_dump($array);

/* 输出:

array (size=3)

0 => int 1

1 => int 2

2 =>

array (size=3)

0 => string 'a' (length=1)

1 => string 'b' (length=1)

2 => string 'c' (length=1)

*/

下面对比下三者对变量的输出

$var = 'string';

var_dump($var);

/* 输出:

string 'string' (length=6)

*/

var_export($var);

/* 输出:

'string'

*/

print_r($var);

/* 输出:

string

*/

-------------------------------------------------------------

下面对比下三者对资源的输出

$handle = fopen('log.txt', 'r');

var_dump($handle);

/* 输出:

resource(3, stream)

*/

var_export($handle);

/* 输出:

NULL

*/

print_r($handle);

/* 输出:

Resource id #3

*/

-------------------------------------------------------------

下面对比下三者对布尔变量的输出

$a = TRUE;

var_dump($a);

/* 输出:

boolean true

*/

var_export($a);

/* 输出:

true

*/

print_r($a);

/* 输出:

1

*/

-------------------------------------------------------------

下面对比下三者对对象的输出

$obj = new obj();

var_dump($obj);

/* 输出:

object(b)[1]

private 'data' => null

*/

var_export($obj);

/* 输出:

obj::__set_state(array( 'data' => NULL, ))

*/

print_r($obj);

/* 输出:

obj Object ( [data:obj:private] => )

*/

在c#中 RemoveAt、 Remove、delete用法区别

有三种方法可以删除 DataTable 中的 DataRow: Delete 方法和 Remove 方法和 RemoveAt 方法 其区别是: Delete 方法实际上不是从 DataTable 中删 ...

js中关键字 const , let , var 的用法区别

1.const定义的变量不可以修改,而且必须初始化. 2.var定义的变量可以修改,如果不初始化会输出undefined,不会报错. 3.let是块级作用域,函数内部使用let定义后,对函数外部无影响 ...

PHP 中 var_export、print_r、var_dump 调试中的区别

1.output basic type 代码 $n = "test"; var_export($n); print_r($n); var_dump($n); echo '----- ...

php中echo(),print(),print_r()之间的区别

echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)  print只能打印出简单类型变量的值(如int,string)  print_r可以打印出复 ...

PHP中echo(),print(),print_r()之间的区别?

echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print只能打印出简单类型变量的值(如int,string) print_r可以打印出复杂类 ...

angularjs中provider,factory,service的区别和用法

angularjs中provider,factory,service的区别和用法 都能提供service,但是又有差别 service 第一次被注入时实例化,只实例化一次,整个应用的生命周期中是个单例 ...

C++中public、protected及private用法

转自:http://www.jb51.net/article/54224.htm 初学C++的朋友经常在类中看到public,protected,private以及它们在继承中表示的一些访问范围,很容 ...

随机推荐

jvm的代码缓存耗尽导致性能下降

在没遇到这个问题之前,我对JVM的解释模式与编译模式的代码性能相差有多大,是没有感觉的,只是觉得编译模式会比解释模式性能好那么一点点吧. 但是经历过这次以后,让我对JVM的即时编译产生了兴趣.先来看看 ...

自增锁预分配ID

http://www.cnblogs.com/xpchild/p/3825309.html mysql> show create table pp; CREATE TABLE `pp` ( `i ...

ZOJ3765 Lights Splay树

非常裸的一棵Splay树,需要询问的是区间gcd,但是区间上每个数分成了两种状态,做的时候分别存在val[2]的数组里就好.区间gcd的时候基本上不支持区间的操作了吧..不然你一个区间里加一个数gcd ...

Python模拟键盘输入和鼠标操作

Python模拟键盘输入和鼠标操作 一.Python键盘输入模拟: import win32api import win32con win32api.keybd_event(17,0,0,0)  #c ...

Linux网络配置命令ifconfig输出信息解析

eth0      Link encap:Ethernet  HWaddr 00:1e:4f:e9:c2:84 inet addr:128.224.163.153  Bcast:128.224.163 ...

JAVA之旅(二十一)——泛型的概述以及使用,泛型类,泛型方法,静态泛型方法,泛型接口,泛型限定,通配符

JAVA之旅(二十一)--泛型的概述以及使用,泛型类,泛型方法,静态泛型方法,泛型接口,泛型限定,通配符 不知不觉JAVA之旅已经写到21篇了,不得不感叹当初自己坚持要重学一遍JAVA的信念,中途也算 ...

Hyper-v带宽限制以及验证工具

最近在做项目的性能测试时,需要模拟网络的带宽来控制文件的上传速度.按照以前的方式方法,我们一般会使用工具 softperfect bandwidth manager 来模拟上下行的带宽. 官网地址 h ...

Linux 磁盘与磁盘分区

Linux 系统中所有的硬件设备都是通过文件的方式来表现和使用的,我们将这些文件称为设备文件,硬盘对应的设备文件一般被称为块设备文件.本文介绍磁盘设备在 Linux 系统中的表示方法以及如何创建磁盘分 ...

wpf(dispather调度者)

一.首先为什么要有dispather? wpf程序是有一个主线程多个子线程组成的.主线程负责创建ui界面,数据接收,处理事件,子线程负责处理消耗资源较多耗时的操作.然而子线程不能直接访问主线程那么这个 ...

SVN的正确提交方式

版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Rundy_Deng/article/details/80338093 也会让我们百思不得其解,甚至耽 ...

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值