ID: 6238 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Analyzed +Status: Wont fix Bug Type: Feature/Change Request Operating System: * PHP Version: 4.0 Latest CVS (18/08/2000) New Comment:
var_dump() cannot be extended in such a way since it currently dumps the every value passed to it. Thefefore it will break BC. var_dump() currently works better with circular references than before - does not crash. Previous Comments: ------------------------------------------------------------------------ [2000-08-18 12:40:03] [EMAIL PROTECTED] If someone takes the task designing a new svar_dump() or similar (custom_dump()), we could add two parameters. param 1) steps, how many steps to resolve, unset=all (as it is currently),1=one level, 2=two levels etc. we would catch the issue that var_dump() produces never ending output with that too, but Itīll be even better to have both, thus... param 2) do not resolve references Thatīs significant added value and could make debugging a lot easier.... example step=2,no_resolve=TRUE object(a)(3) { ["a"]=> int(0) ["b"]=> array(3) { ["a"]=> array(24) ["b"]=> array(14) ["a"]=> array(7) } ["c"]=> &object(circular) (20) } // "c" does not get expanded, because of no_resolve... example step=1,no_resolve=FALSE object(a)(3) { ["a"] int(0) ["b"]=> array(3) ["c"]=> &object(circular) (1) { ["x"] => &object(a) (3) } } example step=0,no_resolve=TRUE // no resolve doesnīt matter here object(a)(3) { ["a"] int(0) ["b"]=> array(3) ["c"]=> &object(circular) (1) } Please comment, If anything thinks thatīs a good/bad idea... ------------------------------------------------------------------------ [2000-08-18 11:29:39] [EMAIL PROTECTED] maybe I was too fast... get_object_vars() of course works with circular references, but again var_dump()ing them does not work, it has nothing to do with get_object_vars()... ------------------------------------------------------------------------ [2000-08-18 11:27:06] [EMAIL PROTECTED] hah, just found out that get_object_vars() doesnīt work with circular references too... very bad summary, using circular references very much makes scripts very hard (impossible) to debug because of this bug. Youīll have to kill all circular references to be able to debug objects, depending on number of CRs itīs perhaps no trivial task cos thereīs no function like get_object_references() to be able to kill them so var_dump() supports multiple variables, then perhaps svar_dump() for safe var dump or any other name maybe get_object_vars() can get this second SAFETY parameter.... ------------------------------------------------------------------------ [2000-08-18 11:11:45] [EMAIL PROTECTED] of course, deactivation with an optinal parameter, like var_dump($megaobject,TRUE); ------------------------------------------------------------------------ [2000-08-18 11:06:41] [EMAIL PROTECTED] It would be very, very helpful if we could *disable* reference resolution in var_dump() output, working with circular references and then trying a var_dump() on any involved object results in a really big mess, I killed my browser after it grew up to 250Megs. Itīs really handy that var_dump() recognizes if itīs a variable or not (by prepending &) and I can imagine that profit supercedes the efforts to implement this greatly. that applies to print_r() and similar functions too ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=6238&edit=1