#35822 [Opn->Csd]: print_r displays private declared objects

From: Date: Tue, 03 Jan 2006 17:39:33 +0000
Subject: #35822 [Opn->Csd]: print_r displays private declared objects
References: 1  Groups: php.doc 
Request: Send a blank email to phpdoc+get-969371428@lists.php.net to get a copy of this message
ID: 35822 Updated by: vrana@php.net Reported By: mattias dot segerdahl at bitcom dot se -Status: Open +Status: Closed Bug Type: Documentation problem Operating System: All PHP Version: 5.1.1 New Comment: This bug has been fixed in the documentation's XML sources. Since the online and downloadable versions of the documentation need some time to get updated, we would like to ask you to be a bit patient. Thank you for the report, and for helping us make our documentation better. Previous Comments: ------------------------------------------------------------------------ [2005-12-28 11:47:15] mattias dot segerdahl at bitcom dot se Manual entries for var_dump and print_r contradicts eachother, this behaviour is not to be expected. Please follow your own words and read the manual before setting bug to bogus. ------------------------------------------------------------------------ [2005-12-28 11:39:32] tony2001@php.net That's how they should work, this is expected behaviour. ------------------------------------------------------------------------ [2005-12-28 11:12:39] mattias dot segerdahl at bitcom dot se http://www.php.net/manual/ says: print_r() and var_export() will also show protected and private properties of objects with PHP 5, on the contrary to var_dump(). Ok, i'm game with that, no biggie, I still believe it's the wrong arpoch, print_r and var_export should only show private/protected if used within the class. But, let's look at the documentation that you refered me to. Reading it, it belive that var_dump would not report these, so, I had a look there as well.. From var_dump: In PHP 5 only public, private and protected properties of objects will be returned in the output. ------------------------------------------------------------------------ [2005-12-27 23:49:58] tony2001@php.net Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php ------------------------------------------------------------------------ [2005-12-27 23:38:38] mattias dot segerdahl at bitcom dot se Description: ------------ print_r($Class) displays private/protected.. Reproduce code: --------------- <?php class foo { private $bar = array(); protected $foobar = array(); public function __construct() { $this->bar['blah'] = 'asfdsdf'; $this->foobar['blah'] = '0as87d'; } } try { $f = new foo(); print_r($f); } catch (exception $e) { die($e->getMessage()); } ?> Expected result: ---------------- foo Object ( [bar:private] => Array ( [blah] => ) [foobar:protected] => Array ( [blah] => ) ) Actual result: -------------- foo Object ( [bar:private] => Array ( [blah] => asfdsdf ) [foobar:protected] => Array ( [blah] => 0as87d ) ) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=35822&edit=1

« previous php.doc (#969371428) next »