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脚本
Nov 26 PHP
PHP配置文件中最常用四个ini函数
Mar 19 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
Feb 02 PHP
深入extjs与php参数交互的详解
Jun 25 PHP
php 强制下载文件实现代码
Oct 28 PHP
使用Discuz关键词服务器实现PHP中文分词
Mar 11 PHP
yii操作session实例简介
Jul 31 PHP
简单的pgsql pdo php操作类实现代码
Aug 25 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
PHP的new static和new self的区别与使用
Nov 27 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
PHP提取字符串中的图片地址[正则表达式]
2011/11/12 PHP
Php中文件下载功能实现超详细流程分析
2012/06/13 PHP
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
jquery自定义右键菜单、全选、不连续选择
2016/03/01 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
2016/06/17 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
使用Angular自定义字段校验指令的方法示例
2019/02/01 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
javascript实现移动端触屏拖拽功能
2020/07/29 Javascript
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
利用ctypes提高Python的执行速度
2016/09/09 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
2020/03/06 Python
python学生管理系统的实现
2020/04/05 Python
Python如何输出百分比
2020/07/31 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
C++面试题目
2013/06/25 面试题
创联软件面试题笔试题
2012/10/07 面试题
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
采购部岗位职责
2013/11/24 职场文书
师恩难忘教学反思
2014/04/27 职场文书
关于Python使用turtle库画任意图的问题
2022/04/01 Python