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图片上传存储源码并且可以预览
Aug 26 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
Apr 23 PHP
php curl post 时出现的问题解决
Jan 30 PHP
php将图片保存为不同尺寸图片的图片类实例
Mar 30 PHP
php 类自动载入的方法
Jun 03 PHP
十个PHP高级应用技巧果断收藏
Sep 25 PHP
PHP设计模式之观察者模式实例
Feb 22 PHP
ThinkPHP中order()使用方法详解
Apr 19 PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 PHP
php 变量引用与变量销毁机制详细介绍
Dec 05 PHP
php封装json通信接口详解及实例
Mar 07 PHP
PHP 8新特性简介
Aug 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 Memcached应用实现代码
2010/02/08 PHP
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
window.open的功能全解析
2006/10/10 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
JavaScript创建对象的七种方式(推荐)
2017/06/26 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
js canvas实现画图、滤镜效果
2018/11/27 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
python pandas修改列属性的方法详解
2018/06/09 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
详解python中__name__的意义以及作用
2019/08/07 Python
Python字符串格式化输出代码实例
2019/11/22 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
新闻系毕业生推荐信
2013/11/16 职场文书
经销商培训邀请函
2014/01/21 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
扩大国家免疫规划实施方案
2014/03/21 职场文书
校优秀毕业生主要事迹
2014/05/26 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
大学生个人总结范文
2015/02/15 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
苹果发布了MagSafe固件更新,可以不外接电源实现最高7.5W充电
2022/04/21 数码科技
Python OpenGL基本配置方式
2022/05/20 Python
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis