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 <[EMAIL PROTECTED]> 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