I think that is what he was meaning. IT SHOULDN'T WORK THAT WAY, BUT IT DOES!!!
Re-Read his first email a little closer. Jim Lucas ----- Original Message ----- From: "Michael Smith" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, July 11, 2003 3:44 PM Subject: Re: [PHP] Private and protected variables in PHP 5? > Hey, > > private vars are not accessible that way. This is the way it works... > > private $var is only usable by the class. You can't access it through > $object->var. > > protected $var is only usable by the class if it was called directly, > but not by any objects that are classes that are extended from the base. > Example: > > class Parent { > protected $var = "test"; > function blah($somevar) { > ... > } > } > > class Child extends Parent { > ... > } > > $parent = new Parent; > print $parent->var; //ouputs "test" > $child = new Child; > print $child->var; //outputs nothing > > as you can see $var is only accessible by objects that are specifically > Parents, not Children. > > public vars are accessible by the class itself, ($this->var), derived > classes, and by $class->var. > > HTH, > Cheers! > -Michael > Paul Hudson wrote: > > All, > > > > I'm toying with the new stuff available in PHP 5 (latest CVS), but I've hit a > > brick wall: both private and protected don't seem to work as I'd expect them > > to. > > > > Here's an example script: > > > > <?php > > class dog { > > // declare two private variables > > private $Name; > > private $DogTag; > > > > public function bark() { > > print "Woof!\n"; > > } > > } > > > > // new class, for testing derived stuff > > class poodle extends dog { > > public function bark() { > > print "Yip!\n"; > > } > > } > > > > // I now create an instance of the > > // derived class > > $poppy = new poodle; > > > > // and set its private property > > $poppy->Name = "Poppy"; > > print $poppy->Name; > > ?> > > > > For some reason, that script works fine - PHP doesn't object to me setting > > private variables in the derived class. Yet if I use "$poppy = new dog", the > > script errors out as expected. It's almost like PHP inherits the member > > variables, but not the attached access control. > > > > For protected, here's another script: > > > > <?php > > class dog { > > // this next function is protected > > // viz, it should be available to dog > > // and its children > > > > protected function bark() { > > print "Woof!\n"; > > } > > } > > > > class poodle extends dog { > > // nothing happening here > > } > > > > $mydog = new poodle; > > // I now call the protected function > > $mydog->bark(); > > ?> > > > > That script errors out saying that I can't call the protected function bark - > > surely, being protected, it should be available in the poodle class too? > > > > Of course, it might be that these two pieces of functionality are not yet > > implemented in PHP, or, more likely, that I'm just misinterpreting the > > documentation! ;) > > > > If you have any insight, please CC me into your response to the list. > > > > Thanks, > > > > > > Paul > > > > > -- > Pratt Museum IT Intern > All programmers are playwrights and all computers are lousy actors. > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php