PHP 中 var_export、print_r、var_dump 调试中的区别
发布:smiling 来源: PHP粉丝网 添加日期:2021-10-05 10:20:21 浏览: 评论:0
这篇文章主要介绍了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 转为返回输出值,而不是直接输出到前端影响线上。
Tags: var_export print_r var_dump
- 上一篇:PHP实现的curl批量请求操作示例
- 下一篇:PHP预定义超全局数组变量小结
相关文章
- ·var_export 与 var_dump用法介绍(2014-03-17)
- ·php中echo、print、print_r、printf、sprintf、var_dump用法介绍(2014-03-24)
- ·php中print(),print_r(),echo()的区别详解(2021-05-01)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)