Re: problem with passing-by-reference

From: Date: Fri, 14 May 2010 08:40:07 +0000
Subject: Re: problem with passing-by-reference
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-305176@lists.php.net to get a copy of this message
On 14 May 2010 10:09, Rene Veerman <rene7705@gmail.com> wrote: > Hi. > > I'm doing the 5.3-strict thing, and am removing all my > passing-by-reference muck from a script of mine. > > But i've run into a problem; > > I use the following construct to push new values fairly deeply inside > an array structure; > > $chase = chaseToReference ($wm, $path); > $arr = result($chase); > $arr[$v] = $lid; > > $path is a flat-list array of indexes in $wm that have to be traversed > to get to the right portion of $wm. > a debug-dump of $wm and $arr after running this code shows $arr > correctly updated, but $wm not. :(( > > here are the functions involved, any help is much appreciated. > > function chaseToReference (&$array, $path) { >  if (!empty($path)) { >    if (empty($array[$path[0]])) { >                        return badResult (E_USER_WARNING, array( >                                'msg' => 'Could not walk the > full tree', >                                '$path' => $path, >                                '$array (possibly partially walked)' > => $array >                        )); >    } else return chaseToReference($array[$path[0]], array_slice($path, 1)); >  } else { >    return goodResult($array); >  } > } > > function result(&$r) { >  return $r['result']; > } > > function goodResult(&$r) { >  $r2 = array ( >  'isMetaForFunc' => true, >        'result' => &$r >  ); >  return $r2; > } > After a quick glance, I can't actually see any modifications to $wm in this code. Regards Peter -- <hype> WWW: http://plphp.dk / http://plind.dk LinkedIn: http://www.linkedin.com/in/plind Flickr: http://www.flickr.com/photos/fake51 BeWelcome: Fake51 Couchsurfing: Fake51 </hype>

« previous php.general (#305176) next »