#35822 [Opn->Csd]: print_r displays private declared objects
| From: | vrana@php.net | 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