1、output basic type

代码


  1. $n = "test";
  2. var_export($n);
  3. print_r($n);
  4. var_dump($n);
  5. echo '-----------------' . '<br/><br/>';
  6. file_put_contents("index.log", var_export($n, true) . PHP_EOL, FILE_APPEND);
  7. file_put_contents("index.log", print_r($n, true) . PHP_EOL, FILE_APPEND);
  8. 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

代码


  1. $arr = array(
  2. "a" => 1,
  3. "b" => "222",
  4. "c" => 3,
  5. );
  6. var_export($arr);
  7. print_r($arr);
  8. var_dump($arr);
  9. echo '-----------------' . '<br/><br/>';
  10. file_put_contents("index.log", var_export($arr, true) . PHP_EOL, FILE_APPEND);
  11. file_put_contents("index.log", print_r($arr, true) . PHP_EOL, FILE_APPEND);
  12. 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

代码


  1. class foo
  2. {
  3. public $n;
  4. public function do_foo()
  5. {
  6. echo "Doing foo." . $this->n;
  7. }
  8. }
  9. $object = new foo;
  10. var_export($object);
  11. print_r($object);
  12. var_dump($object);
  13. echo '-----------------' . '<br/><br/>';
  14. file_put_contents("index.log", var_export($object, true) . PHP_EOL, FILE_APPEND);
  15. file_put_contents("index.log", print_r($object, true) . PHP_EOL, FILE_APPEND);
  16. 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 调试中的区别的更多相关文章

  1. php中var_export与var_dump的区别分析

    一 var_dump (PHP 3 >= 3.0.5, PHP 4, PHP 5) var_dump -- 打印变量的相关信息 描述 void var_dump ( mixed expressi ...

  2. PHP中var_export和var_dump的区别

    var_dump -- 此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值. var_export -- 输出或返回一个变量的字符串表示, 它和 var_dump() 类似,不同的是其返回 ...

  3. PHP开发中,让var_dump调试函数输出更美观 ^_^#

    前提:php必须安装Xdebug模块. 用var_dump打印输出时,输出的内容没有被格式化.如下图: 通常使用var_dump打印的内容是被格式化后输出的,如下图: 造成没有格式化输出的原因是因为p ...

  4. PHP基础温习之echo print printf sprintf print_r var_dump的用法与区别

    一.echoecho() 实际上不是一个函数,是php语句,因此您无需对其使用括号.不过,如果您希望向 echo() 传递一个以上的参数,那么使用括号会发生解析错误.而且echo是返回void的,并不 ...

  5. 在lldb调试中调用c++函数

    在lldb调试时,调用oc对象的方法不足为奇,因为msgSend是有原型导出的,oc对象的方法都运行期绑定的,绑定信息都在objc_class中.只要在调试中[receiver sel]之类,lldb ...

  6. php中print_r、var_dump和var_export几个函数的用法区别

    php中print_r.var_dump和var_export几个函数的用法区别

  7. Firebug中调试中的js脚本中中文内容显示为乱码

    Firebug中调试中的js脚本中中文内容显示为乱码 设置 页面 UFT-8 编码没用, 解决方法:点击 "Firebug"工具栏 中的"选项"---" ...

  8. ejabberd 在eclipse(erlide)中的配置、调试、运行

    最近在折腾ejabberd,将ejabberd项目配置到eclipse中进行编译.调试等,现在将过程记下来,希望能帮助到需要的人. 准备 本次环境是在linux中进行,博主的linux是fedora2 ...

  9. VS2010调试多进程--医疗His调试中使用

    有些时候碰到自己开发的程序嵌入到别人的框架中,而在接口的地方出了问题,而又不方便将自己的模快加入到别人的工程中这个时候VS的附加到进程调试变得不可或缺了,直奔主题 http://msdn.micros ...

随机推荐

  1. HierSort(希尔)————Java

    利用Java进行希尔排序(元素中有0会有问题),步长经过调试length/2+1最合适. import java.util.Scanner; public class HierSort { priva ...

  2. Linux 在文档中查找满足条件的行并输出到文件:

    Linux 在文档中查找满足条件的行并输出到文件: 文件名称: dlog.log    输出文件: out.log 1.满足一个条件(包含  “TJ”  )的语句: grep  “TJ”  dlog. ...

  3. springboot同时使用thymeleaf和jsp模板

    语言:javaEE 框架:springboot+thymeleaf.jsp模板引擎 背景:学习springboot过程中想同时使用thymeleaf和jsp访问(官方不建议) 步骤: 1)  在pom ...

  4. boost-使用property_tree来解析xml、json

    property_tree是一个保存了多个属性值的树形数据结构,可以用来解析xml.json.ini.info文件.要使用property_tree和xml解析组件的话需要包含"boost/ ...

  5. mysql delete from table 失败

    SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; TRUNCATE TABLE ...

  6. .net 导出Excel

    CreateExcel(ExcelDs, ", f); void CreateExcel(DataSet ds, string typeid, string FileName) { Http ...

  7. Hibernate关联关系配置(一对多,一对一,多对多)

    一对多 创建两个类  Manager(一这一端) Worker(多这一端)  即一个经理下有多个员工 package com.hibernate.n21; import java.util.HashS ...

  8. 20155205 2016-2017-2《Java程序设计》课程总结

    20155205 2016-2017-2<Java程序设计>课程总结 目录 一.每周作业链接汇总 二.实验报告链接汇总 三.博客中的经验与收获 - 自认为写得最好一篇博客是?为什么? - ...

  9. 使用 alt_disk_copy 克隆 rootvg

    地址:http://www.ibm.com/developerworks/cn/aix/library/au-alt_disk_copy/ 简介 大多数系统管理员都遇到过以下情况: 一次 ML 升级失 ...

  10. linux-CentOS初学terminal命令(2)vi、gcc、g++、./、mv、cp、ifconfig

    1.vi filename(vi,visual editor,可视化编辑器)用vim文本编辑器打开filename文件. vim文本编辑器有三种模式:命令模式(Command mode),插入模式(I ...