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 mysql Errcode: 28 终极解决方法
Jul 01 PHP
MayFish PHP的MVC架构的开发框架
Aug 13 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
May 29 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
Oct 29 PHP
php在线代理转向代码
May 05 PHP
基于php设计模式中工厂模式详细介绍
May 15 PHP
PHP实现设计模式中的抽象工厂模式详解
Oct 11 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 PHP
php中二分法查找算法实例分析
Sep 22 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 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实现清除MySQL死连接的方法
2016/07/23 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
vue select选择框数据变化监听方法
2018/08/24 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
Element Input组件分析小结
2018/10/11 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
2019/07/05 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
理论讲解python多进程并发编程
2018/02/09 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
xml有哪些解析技术?区别是什么
2016/04/26 面试题
毕业生求职简历的自我评价
2013/10/07 职场文书
优秀党支部事迹材料
2014/01/14 职场文书
家长给孩子的表扬信
2014/01/17 职场文书
英语专业自荐书
2014/06/13 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android