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数据库密码的找回的步骤
Jan 12 PHP
php编程实现获取excel文档内容的代码实例
Jun 28 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
Mar 07 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
Apr 15 PHP
php实现的一段简单概率相关代码
May 30 PHP
学习PHP Cookie处理函数
Aug 09 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
PHP中递归的实现实例详解
Nov 14 PHP
PHP实现的数据对象映射模式详解
Mar 20 PHP
PHP中用Trait封装单例模式的实现
Dec 18 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
一个odbc连mssql分页的类
2006/10/09 PHP
laravel5.2实现区分前后台用户登录的方法
2017/01/11 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
phpfpm的作用和用法
2019/10/10 PHP
一个用js实现的页内搜索代码
2007/05/23 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
2014/06/09 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
分享javascript计算时间差的示例代码
2020/03/19 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
JavaScript随机数的组合问题案例分析
2020/05/16 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
极简的Python入门指引
2015/04/01 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
python实现简单点对点(p2p)聊天
2017/09/13 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
python 实现按对象传值
2019/12/26 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
大学生工作求职信
2014/06/23 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript