On 01/12/2007, Jingcheng Zhang <[EMAIL PROTECTED]> wrote: > Well, yes, "private" denies accessing from other class(including its child > class), this is what "encapsulation" means. But when refering to > inheritance, why forbids private properties/methods being *extended* to > child classes? This is what I mean, as the following example: > > <?php > class p { > protected $foo = 'foo'; > private $bar = 'bar'; > } > class c extends p { > public function f() { > $o = new p(); > $o->foo = 'FOO'; // Correct, "foo" is protected property of p and > thus allow accessing from child class
This is not allowed. $o is in a different context (I think that's the right way of describing this) and as such has no access to the private or protected members of $o. Just because it $o is created within class c, it is not related. > $o->bar = 'BAR'; // Incorrect, "bar" is private property of > *class p* here > } > public function g() { > $this->foo = 'FOO'; // Correct, "foo" is > $this->bar = 'BAR'; // Should be OK, as "bar" is private property of > *class c* here Private means only of use in the class in which is created, not sub-classes or public space. > } > } > ?> > > Thanks. > > > On Dec 1, 2007 12:57 AM, Johannes Schlüter <[EMAIL PROTECTED]> wrote: > > > Hi, > > > > On Sat, 2007-12-01 at 00:24 +0800, "Jingcheng Zhang" wrote: > > > Hi Etienne, > > > Is "private" only an access limiter between classes?If so, I think > > private > > > properties and methods should be OK to be extended into the child class, > > but > > > currently that's not the case, and there is also a bug here, consider > > the > > > following example: > > > > The child class is another class, "private" gives you encapsulation > > inside the base class's context. and preventing acces from other class's > > context. > > > > johannes > > > > > > > -- > Best regards, > Jingcheng Zhang > Room 304, Dormitory 26 of Yuquan Campus, Zhejiang University > P.R.China > -- ----- Richard Quadling Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 "Standing on the shoulders of some very clever giants!"