• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP 中 var_export、print_r、var_dump 调试中的区别

    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 调试中的区别,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:
    • python调试神器PySnooper的使用
    • 详解DeBug Python神级工具PySnooper
    • GitHub 热门:别再用 print 输出来调试代码了
    • php 调试利器debug_print_backtrace()
    • 关于PySnooper 永远不要使用print进行调试的问题
    上一篇:PHP输出Excel PHPExcel的方法
    下一篇:Laravel框架实现的记录SQL日志功能示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP 中 var_export、print_r、var_dump 调试中的区别 PHP,中,var,export,print,dump,