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 11 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
Apr 02 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
Jan 06 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
Jun 27 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
Dec 24 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
PHP面向对象程序设计之对象的遍历操作示例
Jun 12 PHP
Laravel框架实现文件上传的方法分析
Sep 29 PHP
tp5框架的增删改查操作示例
Oct 31 PHP
phpmyadmin在宝塔面板里进不去的解决方案
Jul 06 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 类相关函数的使用详解
2013/05/10 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
php实现的短网址算法分享
2014/06/20 PHP
浅析php工厂模式
2014/11/25 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
2013/08/09 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
用队列模拟jquery的动画算法实例
2015/01/20 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
Element-ui table中过滤条件变更表格内容的方法
2018/03/02 Javascript
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
python中sleep函数用法实例分析
2015/04/29 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
班长竞选演讲稿
2014/04/24 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
休学证明范本
2015/06/19 职场文书
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
2021/05/26 Servers