Tim | iHostNZ wrote: > Hi All, > > Just to annoy the hell out of you, another thing that has been on my mind > for a while: > > I love the foreach ($ar as $k => $v) { ... } construct and use it all the > time. However, I read somewhere that foreach actually uses a copy of $ar > instead of the array itself by reference. Wouldn't it be much more > usefull/efficient, if foreach would use the array by reference? Then one > could change arrays while iterating over them (without having to use the old > fashioned for ($i=0; $i<count($ar); $i++), also this doesnt work for > associative arrays). I know you can do it with while and list somehow, but i > personally find that language construct rather ugly and can never remember > it. Is there another way that any of you use? Please enlighten me. > I just use foreach because its easy, but it might not be the best. However, > it seems to perform good enough for what i've done so far. You can use: $arr = array('abc'=>'123','ver'=>phpversion()); foreach ($arr as $key=>&$val) { echo $val."\n"; // Beware! - Changing $val will change it in $arr } // or like this: $arr = array('abc'=>'123','ver'=>phpversion()); reset($arr); while (list($key, $val) = each($arr)) { echo $val."\n"; } > > Somewhere i also read that one can save a lot of memory by destroying > variables. Is that done with unset, setting it to null or something similar? > So, i take there is no garbage collection in php? I've never actually looked > at the c source code of php. Maybe its time to actually do that. But it > might be easier if someone can answer this from the top of their head. > > Thanks for your patience. > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php