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出错界面
Oct 09 PHP
用PHP制作静态网站的模板框架(二)
Oct 09 PHP
10个实用的PHP正则表达式汇总
Oct 23 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
Apr 08 PHP
php线性表的入栈与出栈实例分析
Jun 12 PHP
php判断对象是派生自哪个类的方法
Jun 20 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
Feb 08 PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 PHP
php之可变变量的实例详解
Sep 12 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
May 20 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 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
第二节--PHP5 的对象模型
2006/11/16 PHP
PHP 写文本日志实现代码
2010/05/18 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
2014/11/18 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
Ext面向对象开发实践(续)
2008/11/18 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
分析javascript中9 个常见错误阻碍你进步
2017/09/18 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
python 内置函数filter
2017/06/01 Python
Python for循环与range函数的使用详解
2019/03/23 Python
python进度条显示之tqmd模块
2020/08/22 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
HTML5实现签到 功能
2018/10/09 HTML / CSS
英国著名书店:Foyles
2018/12/01 全球购物
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
大学生简历求职信
2014/06/24 职场文书
乌镇导游词
2015/02/02 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
业务内勤岗位职责
2015/04/13 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js