Home >Backend Development >PHP Tutorial >About the difference between var_export, print_r and var_dump in debugging in PHP

About the difference between var_export, print_r and var_dump in debugging in PHP

不言
不言Original
2018-06-19 16:38:181670browse

This article mainly introduces the differences between var_export, print_r, and var_dump debugging in PHP. It is very good and has certain reference value. Friends in need can refer to it

1. output basic type

Code

$n = "test";
var_export($n);
print_r($n);
var_dump($n);
echo &#39;-----------------&#39; . &#39;<br/><br/>&#39;;
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);

Result

(1) Front end:

'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

code

$arr = array(
  "a" => 1,
  "b" => "222",
  "c" => 3,
);
var_export($arr);
print_r($arr);
var_dump($arr);
echo &#39;-----------------&#39; . &#39;<br/><br/>&#39;;
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);

result

( 1) Front end:

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 ( &#39;a&#39; => 1, &#39;b&#39; => &#39;222&#39;, &#39;c&#39; => 3, ) Array ( [a] => 1 [b] => 222 [c] => 3 )

3, output object

code

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 &#39;-----------------&#39; . &#39;<br/><br/>&#39;;
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);

Result

(1) Front end:

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( &#39;n&#39; => NULL, )) foo Object ( [n] => )

##Summary:

1. Detailed output results: var_export ≈ print_r < var_dump

2. When debugging, when calling var_export, print_r, var_dump, there is no need to add echo in front.

3. If the second parameter of var_export and print_r is true, the value will be returned. var_dump does not support , so do not use var_dump when using file_put_contents to output debugging.

4. It is recommended to use var_dump directly for debugging in the development environment to obtain detailed debugging information and code line positioning; to use var_export or print_r for debugging in the production environment. Remember to set the second parameter to true to return output. value instead of outputting it directly to the front-end influence line.

The above is the entire content of this article. I hope it will be helpful to everyone's study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

Use PHP to implement Chinese pinyin conversion and Gregorian and lunar calendar conversion

About PHP’s move_uploaded_file() function Analysis

The above is the detailed content of About the difference between var_export, print_r and var_dump in debugging in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn