What is the difference between var_dump() and print_r() in terms of spitting out an array as string?
13 Answers
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
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.
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'));
print_r() function - Displays human-readable output
Array
(
[0] => xyz
[1] =>
[2] => 1
[3] => 99
[4] => Array
(
[0] => 50
)
)
var_dump() function - Displays values and types
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/
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.
var_dump() :-
- This function displays structured information about one or more expressions that includes its type and value. Arrays and objects are explored recursively with values indented to show structure.
- This function display number of element in a variable.
- This function display length of variable.
- Can't return the value only print the value.
- it is use for debugging purpose.
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() :-
- Prints human-readable information about a variable.
- Not display number of element in a variable as var_dump().
- Not display length of variable in a variable as var_dump().
- Return the value if we set second parameter to true in printf_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>
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'}.