The var_dump
function displays structured information about variables/expressions including its type and value. Arrays are explored recursively with values indented to show structure. It also shows which array values and object properties are references.
The print_r()
displays information about a variable in a way that's readable by humans. array values will be presented in a format that shows keys and elements. Similar notation is used for objects.
Example:
$obj = (object) array('qualitypoint', 'technologies', 'India');
var_dump($obj)
will display below output in the screen.
object(stdClass)#1 (3) {
[0]=> string(12) "qualitypoint"
[1]=> string(12) "technologies"
[2]=> string(5) "India"
}
And, print_r($obj)
will display below output in the screen.
stdClass Object (
[0] => qualitypoint
[1] => technologies
[2] => India
)
More Info
With large arrays, print_r can show far more information than is useful. You can truncate it like this, showing the first 2000 characters or however many you need.
echo "<pre>" . substr(print_r($dataset, 1), 0, 2000) . "</pre>";
print_r() and var_dump() are Array debugging functions used in PHP for debugging purpose. print_r() function returns the array keys and its members as Array([key] = value) whereas var_dump() function returns array list with its array keys with data type and length as well e.g Array(array_length){[0] = string(1)'a'}.
var_dump() :-
Example :-
<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>
output :-
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
print_r() :-
Example :-
<pre>
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
</pre>
Output:-
<pre>
Array
(
[a] => apple
[b] => banana
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)
</pre>
Significant differences between var_dump
and print_r
both the functions dumps information about the variable, but var_dump
multiple parameters which will be dumped, where as print_r
can take two parameters out of which first parameter is the variable you want to dump and second is a boolean value.
var_dump
can't return any value it can only dump/print the values where as print_r can return the variable information if we set second parameter of print_r
to true. The returned value of print_r
will be in string format.
The information printed by print_r
is much more in readable format where as var_dump
prints raw values.
print_r
function can be used in many contexts where as var_dump
can be used in debugging purposes mainly since it can't return value.
Generally, print_r( )
output is nicer, more concise and easier to read, aka more human-readable but cannot show data types.
With print_r()
you can also store the output into a variable:
$output = print_r($array, true);
which var_dump()
cannot do. Yet var_dump()
can show data types.
It's too simple. The var_dump() function displays structured information about variables/expressions including its type and value. Whereas The print_r() displays information about a variable in a way that's readable by humans.
Example: Say we have got the following array and we want to display its contents.
$arr = array ('xyz', false, true, 99, array('50'));
Array
(
[0] => xyz
[1] =>
[2] => 1
[3] => 99
[4] => Array
(
[0] => 50
)
)
array(5) {
[0]=>
string(3) "xyz"
[1]=>
bool(false)
[2]=>
bool(true)
[3]=>
int(100)
[4]=>
array(1) {
[0]=>
string(2) "50"
}
}
For more details: https://stackhowto.com/how-to-display-php-variable-values-with-echo-print_r-and-var_dump/
var_dump($var)
shows in-depth details, by providing additional details of
I'd aditionally recommend putting the output of var_dump() or printr into a pre tag when outputting to a browser.
print "<pre>";
print_r($dataset);
print "</pre>";
Will give a more readable result.
We can pass multiple parameters with var_dump like:
var_dump("array1",$array1,"array2",$array2);
var_dump
displays structured information about the object / variable. This includes type and values. Like print_r
arrays are recursed through and indented.
print_r
displays human readable information about the values with a format presenting keys and elements for arrays and objects.
The most important thing to notice is var_dump
will output type as well as values while print_r
does not.
If you're asking when you should use what, I generally use print_r()
for displaying values and var_dump()
for when having issues with variable types.
Source: Stackoverflow.com