This function displays information about the values of variables in a way that's readable by humans. 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.
Remember that print_r() will move the array pointer to the end. Use reset() to bring it back to beginning.
Compare print_r() to var_dump().
This function will continue forever if given an array or object that contains a direct or indirect reference to itself or that contains an array or object on a deeper level that does so. This is especially TRUE for print_r($GLOBALS), as $GLOBALS is itself a global variable and contains a reference to itself as such.