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 一个页面执行时间类代码
Mar 05 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
Nov 07 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
php表单敏感字符过滤类
Dec 08 PHP
php针对cookie操作的队列操作类实例
Dec 10 PHP
PHP中把有符号整型转换为无符号整型方法
May 27 PHP
PHP生成唯一订单号
Jul 05 PHP
PHP实现搜索相似图片
Sep 22 PHP
php实现Session存储到Redis
Nov 11 PHP
深入浅析php json 格式控制
Dec 24 PHP
ThinkPHP中create()方法自动验证表单信息
Apr 28 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 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
二次元帅气男生排行榜,只想悄悄收藏系列
2020/03/04 日漫
php学习笔记 类的声明与对象实例化
2011/06/13 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
Node.js模块全局安装路径配置方法
2018/05/17 Javascript
Vue不能观察到数组length的变化
2018/06/08 Javascript
JS立即执行的匿名函数用法分析
2019/11/04 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
[51:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第二局
2016/03/03 DOTA
Python getopt模块处理命令行选项实例
2014/05/13 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
python调用c++传递数组的实例
2019/02/13 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
几道PHP面试题
2013/04/14 面试题
abstract是什么意思
2012/02/12 面试题
灰雀教学反思
2014/04/28 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
学生穿着不得体检讨书
2014/10/12 职场文书
学生违反校规检讨书
2014/10/28 职场文书
2014年房地产销售工作总结
2014/12/01 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
复兴之路纪录片观后感
2015/06/02 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
协议书格式模板
2016/03/24 职场文书
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python
css3 文字断裂效果
2022/04/22 HTML / CSS