Valery Shostak
Новичок
Почему меняется переменная в цикле?
Простейший код. Два массива: $items_1 и $items_2. В первом — элементы в виде массива, во втором — в виде класса.
Как видите, в обоих случаях, в цикле переменная без &, следовательно, значение её меняться не должно.
Не могу понять, почему во втором случае оно всё-таки меняется...
PHP 5.2
Результат работы скрипта:
Простейший код. Два массива: $items_1 и $items_2. В первом — элементы в виде массива, во втором — в виде класса.
Как видите, в обоих случаях, в цикле переменная без &, следовательно, значение её меняться не должно.
Не могу понять, почему во втором случае оно всё-таки меняется...
PHP 5.2
PHP:
<?
$items_1[1]['name'] = '111';
$items_1[2]['name'] = '222';
foreach($items_1 as $item_1)
$item_1['name'] = '---';
echo('<pre>'); print_r($items_1); echo('</pre>'."\n");
$items_2[1]->name = '111';
$items_2[2]->name = '222';
foreach($items_2 as $item_2)
$item_2->name = '---';
echo('<pre>'); print_r($items_2); echo('</pre>'."\n");
?>
Код:
Array
(
[1] => Array
(
[name] => 111
)
[2] => Array
(
[name] => 222
)
)
Array
(
[1] => stdClass Object
(
[name] => ---
)
[2] => stdClass Object
(
[name] => ---
)
)