I am working on a pretty large project where I needed to dump a human readable form of whatever into the log files... and I thought var_export was too difficult to read. BigueNique at yahoo dot ca has a nice solution, although I needed to NOT modify whatever was being passed to dump.

So borrowing heavily from BigueNique's (just reworked his function) and someone's idea over in the object cloning page, I came up with the following function.

It makes a complete copy of whatever object you initially pass it, including all recursive definitions and outside objects references, then does the same thing as BigueNique's function. I also heavily reworked what it output, to suit my needs.

I personally prefer a single standalone function called debug from github.com/hazardland/debug.php

It outputs html formatted dump for a complex objects/nested arrays with an expand/collapse buttons and gives ability to simply observe deep level data structures without depleting your brain resources or in a form of 4 space tab indented plain text which looks like this (but html mode is just a fully satisfying thing):

Very new to this and really appreciate the contributions of everyone. I really rely on this site . BigueNique inspired me with the last post.

I am writing an application that is WAY above my head and am buried in pages of variables and objects. I really wanted an easier way to read them.

I had two problems - 1. The lists were too long; 2. It was hard to tell where one ended and the other began; 3. By the time I saw my rendered forms, I forgot where my variable listing was. (Yeah, I can't count, get over it - now you know why this is so hard for me)

I had a variable dumping routine that worked better than the print_r, but elegant_dump was MUCH nicer.

I added a little bit of CSS and javascript to mine, and I have a really quick and easy way to display a colored title with a toggle control to expand or contract the variable structure and contents.

It might be too rudimentary for most of you guys, and I'm not answering anyone's question specifically, but perhaps this creative implementation will make someone's life a little easier. At a minimum, It might be a good example of mixing in the different languages which was initially a big challenge for me.

Just created this neat class that dumps a variable in a colored tabular structure similar to the cfdump tag in Coldfusion. Very easy to use and makes it so much easier to see the contents of variable. For examples and download, visit http://dbug.ospinto.com

For the special case where you know that you are only dealing with arrays, <?php string implode(string $glue, array $pieces) ?>may be all that's necessary, and the $glue parameter can be used to insert placeholders if you need to do more complex formatting. Nested arrays and such are discussed on the implode() page.

We can all agree that var_dump(); output is very spartan looking. The debug data needs to be organized better, and presented in a graceful way. In the era of Web 2.0 it is somewhat strange to use plain text to dump information. A DHTML powered informatiion dumping tool will be quite better - like the the open-source alternative of var_dump(); -- Krumo (http://krumo.sourceforge.net).

It renders the output using DHTML and collapsible nodes, it's layout is "skinable" and you can change it to fit your aesthetic taste. Krumo makes the output "human-readable" for real :) Plus it is compliant with both PHP4 and PHP5. Plus it detects "reference recursion". Plus you can use it to dump all various sort of data like debug back-traces, the superglobals ($_SERVER, $_ENV, $_REQUEST, $_COOKIE, $_GET, $_POST, $_SESSION), all the included files, all the declared classes, all the declared constants, all your PHP settings, all your php.ini values (if it is readable), all the loaded extensions, all the HTTP request headers, all the declared interfaces (for PHP5), all the file paths from INCLUDE_PATH, all the values of any particular INI file. Additionally it is designed to be easy to use - for example you can disable all the Krumo dumps instead of cleaning your code out of all print_r()'s and var_dump()'s. Anyway, if you check the site (http://krumo.sourceforge.net), you can found a lot of examples, demonstrations, documentation and all sort of helpful information.

Well, like many others I was looking for a way to get nice dumps of variables. I think I'm about to solve this once and for all; or at least for PHP 5.1. Have a look at my project HLI. http://hli.forestfactory.de

It dumps and highlights not only Arrays and Object but also DOMDocument (as XML), DB results (as table), GD-Images (as PNG), DirectoryIterators (as table), Serialized Strings and many more.

It prints backtrace, object reflection (including PHPDoc) and the position of the dump. Dumps are movable, resizeable and foldable.

It is plugin-based, so its easy to write new dump-modes for other objects/resources. It generates XML output that is parsed by XSLT to HTML and will soon be able to be handled over AJAX (I will do this the next time I program some AJAX stuff).

It runs out of the box (tested with PHP 5.1 and PHP 5.2), but this is only a 0.1 release, so please tell me if something in wrong and I'll be happy to fix it.

Oh, and it's LGPL, so just use and enjoy it. I couldn't work without it any more.