Pierre-Alain Joye wrote:
On Sat, 17 Jan 2004 16:44:29 +0100
Andrey Hristov <[EMAIL PROTECTED]> wrote:


IMO, when casting to array with (array) only the public-ly visible
members should returned.


Dunno, E_STRICT (as you can access them without notice/warning without
this flag)?

In the same manner:
<?php
error_reporting(E_STRICT);
class some {
         public $pub = 1;
         protected $prot = 2;
         private $priv = 3;

}
class any extends some {
        public $pub1 = 1;
        function dump() {
                var_dump($this);
        }
}
var_dump((array)new any());
$a = new any;
$a->dump();

?>

a var_dump should dump protected props from the parent class as they are
visible. Note the "funny" thing is that var_dump() alone do not display
the public|protected props, whatever is the context call. IMHO, that
sounds not very consistent, but only imho...
Yes, it does not. Use print_r() for dumping. print_r() uses internal zend function to dump the variable content while var_dump() is defined in ext/standard/var.c and knows nothing
about protected and private functions (or at least it was that 2 months ago).
print_r() has the expected behavior of dumping data, but casting to array and getting protected/private data is nasty.



Andrey


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



Reply via email to