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脚本的10个技巧(1)
Oct 09 PHP
php 仿Comsenz安装效果代码打包提供下载
May 09 PHP
php array_walk() 数组函数
Jul 12 PHP
php中生成随机密码的自定义函数代码
Oct 21 PHP
thinkphp的c方法使用示例
Feb 24 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
php实现12306余票查询、价格查询示例
Apr 17 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
Mar 28 PHP
php 的多进程操作实践案例分析
Feb 28 PHP
win10下 php安装seaslog扩展的详细步骤
Dec 04 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之XML转数组函数的详解
2013/06/07 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
laravel自定义分页效果
2017/07/23 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
加速IE的Javascript document输出的方法
2010/12/02 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
Javascript Object 对象学习笔记
2014/12/17 Javascript
理解JavaScript原型链
2016/10/25 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
Python算法应用实战之栈详解
2017/02/04 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
python实现简易通讯录修改版
2018/03/13 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
PyQt编程之如何在屏幕中央显示窗体的实例
2019/06/18 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
工程现场管理求职自荐信
2013/10/02 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
大学生找工作求职信
2014/07/09 职场文书
婚礼答谢礼品
2015/01/20 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript
JavaScript执行机制详细介绍
2021/12/06 Javascript
对讲机知识
2022/04/07 无线电
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android