Variable Scope from child to parent

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am trying to get a child class to pass an array of valid keys to it's parent when the constructor is run, and the parent appends the data to one of it's array of valid keys. Then it walks through an array pulling out values that have valid keys, and putting them in an array for processing later. I have tried explicitly stating the variable scope.

abstract class parentclass
{
  protected $vkeys= array('title1','title2','title3');
  protected $a;
	
  function __construct($set = NULL, $special = NULL)
  {
    self::$this->vkeys= array_merge(self::$this->vkeys, $special);  	
    foreach($set as $key=>$value)
    {
      if (in_array($key,self::$this->vkeys))
      {
        $this->a[$key] = $value;
      }
    }
    print_r(self::$this->vkeys);  //output below
    print_r(self::$this->a);  //output below
  }
}

class childclass extends parentclass
{
  protected $vkeys= array('titleA', 'titleB', 'TitleC');

  function __construct($set, $special = NULL)
  {
    parent::__construct($set, self::$this->vkeys);
    unset(self::$this->vkeys);
  }
}

Unfortunately it seems to duplicate the child's array instead of appending. Explicitly stating scope does not seem to help.


print_r(self::$this->vkeys);
Array (
  [0] => titleA
  [1] => titleB
  [2] => titleB
  [3] => titleA
  [4] => titleB
  [5] => titleB
)

print_r(self::$this->a);
Array()

Any thoughts?

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux