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 10 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
php将字符串转化成date存入数据库的两种方式
Apr 28 PHP
html静态页面调用php文件的方法
Nov 13 PHP
php程序内部post数据的方法
Mar 31 PHP
typecho插件编写教程(三):保存配置
May 28 PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 PHP
Fleaphp常见函数功能与用法示例
Nov 15 PHP
详解使用php调用微信接口上传永久素材
Apr 11 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
作为PHP程序员你要知道的另外一种日志
Jul 30 PHP
PHP抽象类基本用法示例
Dec 28 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
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
PHP概率计算函数汇总
2015/09/13 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
JavaScript 学习笔记(六)
2009/12/31 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
2015/03/15 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
python生成日历实例解析
2014/08/21 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
基于python log取对数详解
2018/06/08 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
pandas 将索引值相加的方法
2018/11/15 Python
python程序控制NAO机器人行走
2019/04/29 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
香港艺人陈冠希创办的潮流品牌:JUICESTORE
2021/03/04 全球购物
J2EE面试题
2016/03/14 面试题
彩色的非洲教学反思
2014/02/18 职场文书
人资专员岗位职责
2014/04/04 职场文书
2014年人事科工作总结
2014/11/19 职场文书
负责培养人意见
2015/06/05 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL