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

Reply via email to