(PHP 4, PHP 5)

print_r 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.

Remember that print_r() will move the array pointer to the end. Use reset() to bring it back to beginning.



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 can not 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() - Turn on output buffering
  • var_dump() - Dumps information about a variable
  • var_export() - Outputs or returns a parsable string representation of a variable