March 18th, 2011

while vs. foreach

Источник на сайте Первого

Частенько замечаю в инспектируемом коде конструкции, типа:

$data = array (
0 => array (
'count' => 0,
'total' => 12
),
1 => array (
'count' => 0,
'total' => 4254
)
);

$x = 0;
while ($x < count ($data)){
$data[$x]['count'] = $data[$x]['total'] * 12;
$x++;
}


Нет необходимости использовать while в данном случае. Используйте foreach с передачей аргумента по ссылке:

$data = array (
0 => array (
'count' => 0,
'total' => 12
),
1 => array (
'count' => 0,
'total' => 4254
)
);

foreach ($data as &$item){
$item['count'] = $item['total'] * 12;
}

, такой код гораздо легче прочесть, мы не вводим дополнительные переменные и работать он будет чуть быстрее.


Всем спасибо