Hello,
In my PHP5 installation the first example print Poppy,
but the second return
Fatal error: Call to protected method dog::bark() from context '' in
c:\appserv\www\test\mailingphp50.php on line 18
In my previous installation oh PHP5, private variable worked well ...
PHP 5 is one beta, try with an next snapshot.
Alan
----- Original Message -----
From: "Paul Hudson" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, July 11, 2003 11:21 PM
Subject: [PHP] Private and protected variables in PHP 5?
> 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
>
> --
> 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