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和ACCESS写聊天室(九)
Oct 09 PHP
生成php程序的php代码
Apr 07 PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 PHP
避免Smarty与CSS语法冲突的方法
Mar 02 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
怎样搭建PHP开发环境
Jul 28 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 PHP
PHP随机数 C扩展随机数
May 04 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
May 31 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
PHP自定义函数实现数组比较功能示例
Oct 19 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
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用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
动态加载iframe
2006/06/16 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
浅谈javascript的调试
2015/01/28 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
Python设计模式之单例模式实例
2014/04/26 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
python实现事件驱动
2018/11/21 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
台湾东南旅游社网站:东南旅游
2019/02/11 全球购物
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
车工岗位职责
2013/11/26 职场文书
银行财务部实习生的自我鉴定
2013/11/27 职场文书
电子商务专业应届生求职信
2014/05/28 职场文书
上课说话检讨书
2015/01/27 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
小学班级口号大全
2015/12/25 职场文书
Python 如何实现文件自动去重
2021/06/02 Python
苹果发布了MagSafe固件更新,可以不外接电源实现最高7.5W充电
2022/04/21 数码科技
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers