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&amp;&amp;mysql)二
Oct 09 PHP
APMServ使用说明
Oct 23 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
Jun 10 PHP
php笔记之:php数组相关函数的使用
Apr 26 PHP
php生成短网址示例
May 05 PHP
ThinkPHP Mobile使用方法简明教程
Jun 18 PHP
php遍历数组的4种方法总结
Jul 05 PHP
Symfony2学习笔记之插件格式分析
Mar 17 PHP
Laravel学习教程之IOC容器的介绍与用例
Aug 15 PHP
基于laravel缓冲cache的用法详解
Oct 23 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函数
2006/10/09 PHP
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
鼠标图片振动代码
2006/07/06 Javascript
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
jquery BS,dialog控件自适应大小
2009/07/06 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python translator使用实例
2008/09/06 Python
Python字节单位转换实例
2019/12/05 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
2020/06/22 Python
运动会拉拉队口号
2014/06/09 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
党员批评与自我批评发言稿
2014/10/14 职场文书
学校工会工作总结2015
2015/05/19 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
Css预编语言及区别详解
2021/04/25 HTML / CSS