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 session安全问题分析
Jun 24 PHP
探讨PHP调用时间格式的参数详解
Jun 06 PHP
在yii中新增一个用户验证的方法详解
Jun 20 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
PHP使用GIFEncoder类处理gif图片实例
Jul 01 PHP
PHP MYSQL实现登陆和模糊查询两大功能
Feb 05 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
Laravel框架实现定时发布任务的方法
Aug 16 PHP
php中上传文件的的解决方案
Sep 25 PHP
PHP implode()函数用法讲解
Mar 08 PHP
使用laravel和ECharts实现折线图效果的例子
Oct 09 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
对javascript和select部件的结合运用
2006/10/09 PHP
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
destoon各类调用汇总
2014/06/20 PHP
php验证session无效的解决方法
2014/11/04 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
JS实现简易刻度时钟示例代码
2017/03/11 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
python3编码问题汇总
2016/09/06 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
flask项目集成swagger的方法
2020/12/09 Python
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
Snapfish爱尔兰:在线照片打印和个性化照片礼品
2018/09/17 全球购物
业务经理岗位职责
2013/11/11 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
教你用Java Swing实现自助取款机系统
2021/06/11 Java/Android
详解java如何集成swagger组件
2021/06/21 Java/Android
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers