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


Posted in PHP onJune 19, 2018

1、output basic type

代码

$n = "test";
var_export($n);
print_r($n);
var_dump($n);
echo '-----------------' . '<br/><br/>';
file_put_contents("index.log", var_export($n, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", print_r($n, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", var_dump($n) . PHP_EOL, FILE_APPEND);

结果

(1)前端:

'test'  test  /Users/xjnotxj/Program/PhpstormProject/colin/index.php:9:string 'test' (length=4)  -----------------  /Users/xjnotxj/Program/PhpstormProject/colin/index.php:15:string 'test' (length=4)

(2)index.log:

'test'  test

2、output array

代码

$arr = array(
  "a" => 1,
  "b" => "222",
  "c" => 3,
);
var_export($arr);
print_r($arr);
var_dump($arr);
echo '-----------------' . '<br/><br/>';
file_put_contents("index.log", var_export($arr, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", print_r($arr, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", var_dump($arr) . PHP_EOL, FILE_APPEND);

结果

(1)前端:

array ( 'a' => 1, 'b' => '222', 'c' => 3, )  Array ( [a] => 1 [b] => 222 [c] => 3 )  /Users/xjnotxj/Program/PhpstormProject/colin/index.php:13:  array (size=3)  'a' => int 1  'b' => string '222' (length=3)  'c' => int 3  -----------------  /Users/xjnotxj/Program/PhpstormProject/colin/index.php:19:  array (size=3)  'a' => int 1  'b' => string '222' (length=3)  'c' => int 3

(2)index.log:

array ( 'a' => 1, 'b' => '222', 'c' => 3, ) Array ( [a] => 1 [b] => 222 [c] => 3 )

3、output object

代码

class foo
{
  public $n;
  public function do_foo()
  {
    echo "Doing foo." . $this->n;
  }
}
$object = new foo;
var_export($object);
print_r($object);
var_dump($object);
echo '-----------------' . '<br/><br/>';
file_put_contents("index.log", var_export($object, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", print_r($object, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", var_dump($object) . PHP_EOL, FILE_APPEND);

结果

(1)前端:

foo::__set_state(array( 'n' => NULL, ))
foo Object ( [n] => )
/Users/xjnotxj/Program/PhpstormProject/colin/index.php:19:  object(foo)[1]  public 'n' => null  -----------------  /Users/xjnotxj/Program/PhpstormProject/colin/index.php:25:  object(foo)[1]  public 'n' => null

(2)index.log:

foo::__set_state(array( 'n' => NULL, )) foo Object ( [n] => )

总结:

1、输出结果的详细性: var_export ≈ print_r < var_dump

2、调试的时候,调用 var_export、print_r、var_dump 的时候, 不用 在前加 echo 。

3、var_export,print_r 的 第二个参数为true则返回值。var_dump 不支持 ,所以用 file_put_contents 输出调试的时候不要用 var_dump。

4、推荐开发环境的调试直接使用 var_dump,可以获得详细的调试信息和代码行数定位;生产环境的调试使用 var_export 或 print_r,第二个参数记得设置为 true 转为返回输出值,而不是直接输出到前端影响线上。

总结

以上所述是小编给大家介绍的PHP 中 var_export、print_r、var_dump 调试中的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP 日常开发小技巧
Sep 23 PHP
PHP中将网页导出为Word文档的代码
May 25 PHP
基于initPHP的框架介绍
Apr 18 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
Jun 19 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 PHP
PHP入门教程之PHP操作MySQL的方法分析
Sep 11 PHP
PHP内存缓存功能memcached示例
Oct 19 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 #PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 #PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 #PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 #PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 #PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 #PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 #PHP
You might like
PHP中创建并处理图象
2006/10/09 PHP
某大型网络公司应聘时的笔试题目附答案
2008/03/27 PHP
php ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
2017/09/13 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
设计模式中的原型模式在Python程序中的应用示例
2016/03/02 Python
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
使用Python写CUDA程序的方法
2017/03/27 Python
Python实现ping指定IP的示例
2018/06/04 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
python模拟实现分发扑克牌
2020/04/22 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
Python魔术方法专题
2020/06/19 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
清明扫墓感想
2015/08/11 职场文书