tyson i never saw self::$this->vkeys doing this you actually are callig the var inside $this->vkeys do self::$vkeys as static or $this->vkeys as object don't mix regards On Wed, May 14, 2008 at 7:33 PM, Tyson Vanover <tvanover@xxxxxxx> wrote: > 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 > > -- Los sabios buscan la sabiduría; los necios creen haberla encontrado. Gabriel Sosa -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php