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] => )
*/
php中var_dump、var_export和print_r的用法区别的更多相关文章
- 在c#中 RemoveAt、 Remove、delete用法区别
有三种方法可以删除 DataTable 中的 DataRow: Delete 方法和 Remove 方法和 RemoveAt 方法 其区别是: Delete 方法实际上不是从 DataTable 中删 ...
- js中关键字 const , let , var 的用法区别
1.const定义的变量不可以修改,而且必须初始化. 2.var定义的变量可以修改,如果不初始化会输出undefined,不会报错. 3.let是块级作用域,函数内部使用let定义后,对函数外部无影响 ...
- php中print_r、var_dump和var_export几个函数的用法区别
php中print_r.var_dump和var_export几个函数的用法区别
- 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可以打印出复杂类 ...
- [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...
- 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以及它们在继承中表示的一些访问范围,很容 ...
随机推荐
- 使用JSON Web Tokens和Spring实现微服务
http://www.jdon.com/dl/best/json-web-tokens-spring-cloud-microservices.html
- Hive使用过程中的坑
在Hive脚本中如果有 use db; #即使用数据库 最后一定要有一个exit;脚本,退出hive窗口 否则运行到最后,hive无法启动MR任务,只是卡在打印完成hive脚本处. 例子如下: $Hi ...
- Windows操作系统下 使用c++ WIN32API禁用控制台最小化和关闭按钮
#include<Windows.h> //屏蔽控制台最小按钮和关闭按钮 HWND hwnd = GetConsoleWindow(); HMENU hmenu = GetSystemMe ...
- php的json校验json-schema
客户端和服务端的http信息传递,采用json几乎成了标配.json格式简单,易于处理,不过由于没有格式规定,无法校验. 好在php有json-schema模块,可以用来验证json是否符合规定的格式 ...
- 《剑指offer》解题笔记
<剑指offer>解题笔记 <剑指offer>共50题,这两周使用C++花时间做了一遍,谨在此把一些非常巧妙的方法.写代码遇到的难点.易犯错的细节等做一个简单的标注,但不会太过 ...
- typeof关键字
C语言中 typeof 关键字是用来定义变量数据类型的.在linux内核源代码中广泛使用. 使用方法 1.当x的类型为是 int 时 _min1变量的数据类型则为 int. 2.当x为一个表达式时(例 ...
- 1.svn+apache整合
1:安装svn客户端, 并且在客户端下,能建立仓库,在自己的硬盘上,建一个库利用 file:///D:/xx/yy来管理自己的仓库. 2:把svn与apache整合. 2.1为什么与apache一起整 ...
- Generator生成器函数
接触过Ajax请求的会遇到过异步调用的问题,为了保证调用顺序的正确性,一般我们会在回调函数中调用,也有用到一些新的解决方案如Promise相关的技术. 在异步编程中,还有一种常用的解决方案,它就是Ge ...
- CSS3文字立体效果
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- sudo执行脚本找不到环境变量解决方法
问题: 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本, 然后再sudo执行脚本,就找不到变量,未能获取到值. 原因 sud ...