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 设计模式之 单例模式
Dec 19 PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
Jun 03 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
Oct 16 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 PHP
php取得字符串首字母的方法
Mar 25 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
php实现简易聊天室应用代码
Sep 23 PHP
php对xml文件的增删改查操作实现方法分析
May 19 PHP
PHP命令行与定时任务
Apr 01 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版淘宝网查询商品接口代码示例
2014/06/17 PHP
详解php用static方法的原因
2018/09/12 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
JavaScript实现拖拽功能
2020/02/11 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
Python多线程和队列操作实例
2015/06/21 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
python读取文本中的坐标方法
2018/10/14 Python
Python全栈之列表数据类型详解
2019/10/01 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
Python多线程多进程实例对比解析
2020/03/12 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
餐厅销售主管职责范本
2014/02/19 职场文书
承诺书怎么写
2014/03/26 职场文书
农业开发项目建议书
2014/05/16 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
培训后的感想
2015/08/07 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
CocosCreator如何实现划过的位置显示纹理
2021/04/14 Javascript