Do we have a way to avoid the overload of private
atribute members?

Look the example below, and you will see that as the
private member is not visible in the subclass, it is
overloaded by an atribute member of the same name. How
to avoid that??????


class PrivateAccess {

        private $privateVar;
//        public $privateVar;
//        protected $privateVar;

        public function set($var)
        {
                $this->privateVar = $var;
        }
}

class subClassPrivateAccess extends PrivateAccess
{
        function test()
        {
              $this->privateVar = 10;
        }
}

$acesso = new subClassPrivateAccess;


$acesso->set(5);
$acesso->test();

print_r($acesso);
var_dump($acesso);

===========

Results:

PUBLIC:
==========
subclassprivateaccess Object
(
    [privateVar] => 10
)
object(subclassprivateaccess)#1 (1) {
  ["privateVar"]=>
  int(10)
}


PROTECTED:
==========
subclassprivateaccess Object
(
    [privateVar:protected] => 10
)
object(subclassprivateaccess)#1 (1) {
  [""]=>
  int(10)
}


PRIVATE:
==========
subclassprivateaccess Object
(
    [privateVar] => 10
    [privateVar:private] => 5
)
object(subclassprivateaccess)#1 (2) {
  ["privateVar"]=>
  int(10)
  [""]=>
  int(5)
}

__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/

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

Reply via email to