Prints human-readable information about a variable


mixed print_r ( mixed $expression [, bool $return = false ] )

print_r displays information about a variable in a way that's readable by humans.

print_r, var_dump and var_export will also show protected and private properties of objects with PHP 5. Static class members will not be shown.



The expression to be printed.


If you would like to capture the output of print_r, use the return parameter. When this parameter is set to TRUE, print_r will return the information rather than print it.

Return Values

If given a string, integer or float, the value itself will be printed. If given an array, values will be presented in a format that shows keys and elements. Similar notation is used for objects.

When the return parameter is TRUE, this function will return a string. Otherwise, the return value is TRUE.



When the return parameter is used, this function uses internal output buffering so it cannot be used inside an ob_start callback function.


Version Description
4.3.0 The return parameter was added. If you need to capture the output of print_r with an older version of PHP prior, use the output-control functions.
4.0.4 Prior to PHP 4.0.4, print_r will continue forever if given an array or object that contains a direct or indirect reference to itself. An example is print_r($GLOBALS) because $GLOBALS is itself a global variable that contains a reference to itself.


Example #1 print_r example

= array ('a' => 'apple''b' => 'banana''c' => array ('x''y''z'));
print_r ($a);

The above example will output:

    [a] => apple
    [b] => banana
    [c] => Array
            [0] => x
            [1] => y
            [2] => z

Example #2 return parameter example

= array ('m' => 'monkey''foo' => 'bar''x' => array ('x''y''z'));
$results print_r($btrue); // $results now contains output from print_r

See Also

  • ob_start
  • var_dump
  • var_export