Your coworker seems to don't need $var
as an array after the loop anymore. When PHP initializes the foreach loop (what is done only once) it uses the original values from $var
as it is an array at the moment. Then on every step in the loop the current element of the element is assigned to a new var called var
. Note that the orginal array $var
doesn't exist anymore. After the loop $var
will have the value of the last element in the original array.
check this little example which demonstrates what I've said:
$a = array(1,2,3);
foreach($a as $a) {
echo var_dump($a);
}
// after loop
var_dump($a); // integer(3) not array
I could imaging that your coworker does this to save a little memory as the reference to the array will get overwritten and therefore the garbage collector will remove it's memory on next run, but I would not advice you to do the same, as it's less readable.
Just do the following, which is the same but is much more readable:
$array = array(1,2,3);
foreach($array as $value) {
echo var_dump($value);
}
delete($array);
delete($value);