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 404错误页面实现代码
Jun 22 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
Jun 28 PHP
php中批量修改文件后缀名的函数代码
Oct 23 PHP
Php中文件下载功能实现超详细流程分析
Jun 13 PHP
php使用codebase生成随机数
Mar 25 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
PHP多进程编程总结(推荐)
Jul 18 PHP
ZendFramework2连接数据库操作实例
Apr 18 PHP
PHP 多任务秒级定时器的实现方法
May 13 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 PHP
laravel config文件配置全局变量的例子
Oct 13 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实现按照权重随机排序数据的方法
2015/01/09 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
window.open()弹出居中的窗口
2007/02/01 Javascript
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
解决Layui中layer报错的问题
2019/09/03 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
简单谈谈python中的Queue与多进程
2016/08/25 Python
python3设计模式之简单工厂模式
2017/10/17 Python
用python处理图片实现图像中的像素访问
2018/05/04 Python
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
关于tf.reverse_sequence()简述
2020/01/20 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
Django操作session 的方法
2020/03/09 Python
浅析python标准库中的glob
2020/03/13 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
如何利用python发送邮件
2020/09/26 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
元旦联欢会感言
2014/03/04 职场文书
个人作风建设心得体会
2014/10/22 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python
关于JavaScript轮播图的实现
2021/11/20 Javascript
Python集合set()使用的方法详解
2022/03/18 Python
如何优化vue打包文件过大
2022/04/13 Vue.js
mybatis 获取更新记录的id
2022/05/20 Java/Android