Andi Gutmans wrote:
At 11:42 AM 5/18/2004 +0200, Christian Schneider wrote:

Sara Golemon wrote:

var_dump($someobject); shows only public properties (as I'd expect), but
print_r($someobject) shows all properties (explicitly identifying
protected/private props).


I agree with Derick and Andrey in that if anything should be changed it is var_dump.

Reasoning: PPP is there to specify an interface, not to be used in a sandbox way. Both var_dump and print_r are for human inspection and I don't an advantage in hiding information there, quite the opposite.


I agree that showing all PPP makes more sense for these functions. They are mainly debugging tools and for human inspection. Information hiding is important on the language level itself.

Andi

So,
I have made a patch against HEAD :
http://hristov.com/andrey/projects/php_stuff/patches/var_dump.diff.2.txt

php -r 'class a{ protected $a=1; private $b=2;var $c=3;} $a=new a(); var_dump($a);'
produces :
object(a)#1 (3) {
  ["a:protected"]=>
  int(1)
  ["b:private"]=>
  int(2)
  ["c"]=>
  int(3)
}

I hope that everyone will be happy with this. var_dump() is still BC since it does not print ":public" on public properties.


Andrey

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to