Re: issue with inheriting private property from abstract class in php5rc3

From: Date: Thu, 24 Jun 2004 08:35:42 +0000
Subject: Re: issue with inheriting private property from abstract class in php5rc3
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-188934@lists.php.net to get a copy of this message
Curt Zirzow wrote --- napísal::
* Thus wrote Marek Kilimajer:
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;
}
... 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
}
I think one could argue that that test:private shouldn't even be there. To me that test:private would imply that is TestIntance's private variable.
Right, ["Test::test:private"] would be better

« previous php.general (#188934) next »