Добрый день. Столкнулась с проблемой, которая выглядит примерно так: У меня есть переменная, которая в цикле сбрасывается и перезаправляется. Я назначаю эту переменную другой переменной как свойству (например, $ item-> subitems). Атрибут, который я собираю $ item для массива из $ items, например. Каждый цикл этой переменной переустанавливается и повторно заполняется и содержит разные данные. Примерный образец кода опускается ниже:php переменная копия в петле странный поведение
<?php
$seasons = array(1,2);
$ltabs= array(1);
$all = array(1,2,3,4,5,6,7,8,9,0);
foreach ($ltabs as $tab)
{
//Resetting an object instance
$itm=false;
//Re-Initing object
if (1==1)
{
$itm->height = 1;
$itm->width = 2;
}
else
{
$itm->height = 3;
$itm->width = 4;
}
//And thats where crap happens
//foreach($seasons as $season) //Dont work that way too
for ($y=0;$y<count($seasons);$y++)
{
//Re-initing local array for needed values
$itemz=array();
//$itm->items = array();
for($a=0;$a < count($all);$a++) {
if ($all[$a] % $seasons)//Not tested, supposed to gove ANY dofference in arrays.
{
$itemz[]=$all[$a];
}
}
$itm->items = $itemz;
$rtabs[$season] = $itm;
unset($itemz);
//unset($itemz);
}
}
//Returns crap.
var_dump($rtabs);
?>
Но когда я пытаюсь
<?php
foreach($rtabs as $itm)
{
var_dump($itm->items);
}
?>
Я вижу, что все эти подпункты содержат одинаковый набор данных. Мне удалось превзойти его только путем переустановки всей переменной $ itm в этом подцикле. Но я хотел бы отказаться - почему это действует так? .. В соответствии с статьей this сборщик мусора и копирование на PHP-файл должны быть инициализированы, когда я сбросил этот массив $ itemz, так что мне все это выглядит совершенно нелогично. Любая помощь будет оценена по достоинству.
Ваш образец воспроизводит ошибку? если нет, уменьшите реальный код до тех пор, пока у вас останется только код, который делает то, что вы описываете. В процессе этого 99% вероятность того, что вы обнаружите, что вызывает его, потому что вы не изучаете свой собственный код. –