Chris wrote:
class testClass
{
    public $vars = array();

    public function __get($key)
    {
return array_key_exists($key, $this->vars) ? $this->vars[$key] : null;
    }

    public function __set($key, $value)
    {
        $this->vars[$key] = $value;
    }

    public function __isset($key)
    {
        return array_key_exists($key, $this->vars);
    }

    public function __unset($key)
    {
        unset($this->vars[$key]);
    }
}


$tc = new testClass();

$tc->arr = array();

here you store an empty array in the $vars member array, under the key 'arr' (due to your magic methods). is that what you intended?

$tc->arr['a'] = 'A';
$tc->arr['b'] = 'B';

now you are adding elements to this array under the 'arr' key in the $vars member array.

if (isset($tc->arr['b'])) {
    unset($tc->arr['b']);
}

you just removed b from the array under 'arr' in the $vars member array.

//var_dump is only to see results of above
var_dump($tc);

this should show something equiv. to:

array(
        'arr'   => array(
                'a' => 'A'
        )
)

what does it actually show?

--
Jasper Bryant-Greene
General Manager
Album Limited

http://www.album.co.nz/     0800 4 ALBUM
[EMAIL PROTECTED]          021 708 334

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

Reply via email to