var_dump vs. var_export
var_dump and var_export are useful functions for debugging PHP variables. However, most newbie tutorials only mention var_dump when they should be mentioning var_export as another possibility.
Let's say we want to print out the contents of $a which is defined:
$a = array( 1, 2, array( "a", "b", "c" ) );
using var_dump( $a ) we get:
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
as opposed to using var_export( $a ):
array (
0 => 1,
1 => 2,
2 =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
),
)
See what I mean? var_export is 100x more readable! But if you do need to know the types, use var_dump instead.
Edit per the comments:
And here is print_r( $a ):
Array
(
[0] => 1
[1] => 2
[2] => Array
(
[0] => a
[1] => b
[2] => c
)
)
Written by Joel Kuzmarski
Related protips
5 Responses
Nice tip!
The key difference is that var_export output valid PHP that you could write in other file (or eval) while var_dump is only for debugging
I find print_r is best for being readable, seeing as the documentation for it says it "Prints human-readable information about a variable"
@pyrech exactly - that's the comment I wanted to see :)
Also, var_dump shows information about the type of the variable. I think that each of them is for a particular purpose.