5.8. Dumping Variable Contents as Strings
Problem
You want to inspect the values stored in a variable. It may be a complicated nested array or object, so you can’t just print it out or loop through it.
Solution
Use print_r( )
or var_dump( ):
$array = array("name" => "frank", 12, array(3, 4));
print_r($array);
Array
(
[name] => frank
[0] => 12
[1] => Array
(
[0] => 3
[1] => 4
)
)
var_dump($array);
array(3) {
["name"]=>
string(5) "frank"
[0]=>
int(12)
[1]=>
array(2) {
[0]=>
int(3)
[1]=>
int(4)
}
}Discussion
The output of print_r( ) is more concise and
easier to read. The output of var_dump( ),
however, gives data types and lengths for each variable.
Since these functions recursively work their way through variables,
if you have references within a variable pointing back to the
variable itself, you can end up with an
infinite
loop. Both functions stop themselves from printing variable
information forever, though. Once print_r( ) has
seen a variable once, it prints *RECURSION*
instead of printing information about the variable again and
continues iterating through the rest of the information it has to
print. When var_dump( ) sees a variable more than
three times, it throws a fatal error and ends script execution.
Consider the arrays $user_1 and
$user_2, which reference each other through their
friend elements:
$user_1 = array('name' => 'Max Bialystock', 'username' => 'max'); $user_2 = array('name' => 'Leo Bloom', 'username' => 'leo'); // Max and Leo are friends $user_2['friend'] ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access