Home > Article > Backend Development > About the difference between var_export, print_r and var_dump in debugging in PHP
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 '-----------------' . '<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);
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 '-----------------' . '<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);
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 ( 'a' => 1, 'b' => '222', 'c' => 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 '-----------------' . '<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);
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( 'n' => NULL, )) foo Object ( [n] => )
##Summary:
1. Detailed output results: var_export ≈ print_r < var_dump2. 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!