It's still a member, it just can't be accessed by the sub-class's
methods. If you call the parent's methods or a method in the parent is
called that isn't defined in the subclass, the private property is
still there are still used as normal.

On Wed, 23 Jun 2004 18:35:14 -0400, Chris <[EMAIL PROTECTED]> wrote:
> 
> ok, i understand now that private members are NOT inherited.  i guess it
> was just throwing me off that var_dump()/print_r() display the parents
> private member, even tho its not really a member of the subclass.
> 
> thanks
> 
> Marek Kilimajer wrote:
> > Chris wrote --- napísal::
> >
> >> if anyone can, would you please explain why the below code does what
> >> it does?  I would expect $this->test in TestInstance to refer to the
> >> inherited $test from Test.  Using php5RC3.  Thanks.
> >>
> >> <?php
> >> abstract class Test {
> >>     private $test;
> >>     abstract public function addToTest($i);
> >> }
> >>
> >> class TestInstance extends Test {
> >>     public function __construct() {
> >>         $this->test = 0;
> >>     }
> >>
> >>     public function addToTest($i) {
> >>         $this->test += $i;
> >>     }
> >> }
> >>
> >> $t = new TestInstance();
> >> $t->addToTest(3);
> >>
> >> var_dump($t);
> >>
> >> // test var SHOULD be private
> >> echo "private test (shouldn't be able to access it directly, but i
> >> can): ".$t->test."\n\n";
> >>
> >> /*
> >> output
> >> -------------------------------
> >> object(TestInstance)#1 (2) {
> >>   ["test:private"]=>
> >>   NULL
> >>   ["test"]=>
> >>   int(3)
> >> }
> >> private test (shouldn't be able to access it directly, but i can): 3
> >> */
> >> ?>
> >>
> >
> > The variable is private for Test, so TestInstance does not have access
> > to it. By assigning 0 to $this->test in the constructor of TestInstance,
> > you create a new property of TestInstance that is public (the default).
> >
> > var_dump() shows it clearly:
> > object(TestInstance)#1 (2) {
> >   ["test:private"]=> NULL   <---- belongs to Test
> >   ["test"]=> int(3)         <---- belongs to TestInstance
> > }
> 
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 


-- 
paperCrane --Justin Patrin--

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to