Hello - You probably have your solution - adding the "$this->" is the key, which Mary-Anne Wolf put in her code. I am a PHP novice, but that is a standard OO construct that I didn't think of when looking at this initially. There is one line in her code that doesn't work, it is a diagnostic output line in the "get" function: echo "value=$values[$key]"; As I was experimenting / learning with this, I came up with this code, and found the function 'var_dump' that was another interesting diagnostic tool. My final code was this: <?php class myObj { private $values = array(); function __construct() { $this->values['ONE']=1; $this->values['TWO']=2; $this->values['THREE']=3; $this->values['FOUR']=4; foreach ($this->values as $key => $value) echo $key.'=>'.$value.'<br />'; //var_dump($this->values); echo '<br>'; echo 'var_dump of the newly constructed object within the constructor:<br>'; var_dump($this); echo '<br>'; } //Return key value if assigned, else return not assigned public function get($key) { echo "myObj get fxn: key=$key".'<br>'; // var_dump ($this); if (isset($this->values[$key])) echo "<br>value=".$this->values[$key]."<br>"; if ( isset($this->values[$key])){ return $this->values[$key]; } return 'Not assigned!'; } } echo 'Creating a new myObj at line 32<br>'; $var = new myObj; echo "var_dump of the newly created object:<br>"; var_dump($var); echo '<br>'; echo '<br><br>'; echo 'The value is: '.$var->get('FOUR'); ?> Although the cut-and-paste wreaked a little havoc with it. The output that I get in the browser when I run this: Creating a new myObj at line 32 ONE=>1 TWO=>2 THREE=>3 FOUR=>4 var_dump of the newly constructed object within the constructor: object(myObj)#1 (1) { ["values":"myObj":private]=> array(4) { ["ONE"]=> int(1) ["TWO"]=> int(2) ["THREE"]=> int(3) ["FOUR"]=> int(4) } } var_dump of the newly created object: object(myObj)#1 (1) { ["values":"myObj":private]=> array(4) { ["ONE"]=> int(1) ["TWO"]=> int(2) ["THREE"]=> int(3) ["FOUR"]=> int(4) } } myObj get fxn: key=FOUR value=4 The value is: 4 -- Ken On Sun, Jul 1, 2012 at 10:31 AM, Play Cool Games <play@xxxxxxxxxxxxx> wrote: > Or upon further examination ! > But not sure how to rewrite as I didn't understand the $key purpose in the > original ! > > > Warning > Reference of a $value and the last array element remain even after the > foreach loop. > It is recommended to destroy it by unset(). > > Reference: > http://php.net/manual/en/control-structures.foreach.php > > unset($value); // break the reference with the last element > > On Jun 30, 2012, at 9:17 PM, Brian Marple wrote: > > > What is wrong with this code? It is as simple as all get out yet it > doesn't work!!! Does anyone have any clues? > > > > > > <?php > > > > class myObj > > { > > private $values = array(); > > > > public function __construct() { > > $values['ONE']=1; > > $values['TWO']=2; > > $values['THREE']=3; > > > > foreach ($values as $key => $value) > > echo $key.'=>'.$value.'<br />'; > > } > > > > //Return key value if assigned, else return not assigned > > public function get($key) { > > if (isset($values[$key])){ > > return $values[$key]; > > } > > return 'Not assigned!'; > > } > > > > } > > > > $var = new myObj; > > echo 'The value is: '.$var->get('ONE'); > > > > ?> > > > > -- > > Brian Marple > > Systems Analyst > > > > > > > > > > Lee T. Davy - Mini > Play Cool Games > play@xxxxxxxxxxxxx > > > > >