Проблемы не работает clone т.е что то не правильно делаю.

ZloiJoker

Новичок
Проблемы не работает clone т.е что то не правильно делаю.

while(...)
{
$rows[]= &new ViewRow ($data, $items->$idfield, $items);
var_dump::display($rows);
}


array(1) {
id => string(2) 64
item => object(Gallery)#17 (26) {
g_pictsmall => string(20) hotels/standart1.jpg
g_pictbig => string(22) hotels/standart1_b.jpg
}

array(2) {
0 => object(ViewRow)#28 (3) {
}
id => string(2) 64
item => object(Gallery)#17 (26) {
g_pictsmall => string(20) hotels/standart2.jpg
g_pictbig => string(22) hotels/standart2_b.jpg
}
}
}
1 => object(ViewRow)#31 (3) {

g_pictsmall => string(20) hotels/standart2.jpg
g_pictbig => string(22) hotels/standart2_b.jpg

}
}
}

Как победить это ?
т
 

ZloiJoker

Новичок
версия php 5 ка при каждом новом проходе цикла, меняется не последнее значение массива, $rows а весь массив., причем все значения массива становятся равные последнему.
 

Гравицапа

elbirret elcno
ZloiJoker
Давай начнём вот с этого
$rows[] = ...
Что по твоему, происходит с массивом $rows здесь?
 

ZloiJoker

Новичок
new ViewRow ($data, $items->$idfield, $items);
за каждый проход возвращает массив [3] с присвоенным значением тоесть в первый проход массив[3] c присвоенным значнием эдемнту [0] во второй раз массив[3] c присвоенным значением элементу [1]

по идеи он должен $rows[] = ... просто за каждый проход заполнять [0] потом [1] и.т.д
но происходит почему то
первый проход
[0]
второй проход
[1]=[0]
третий проход
[2]=[1]=[0]
т.е все элементы массивы почему то получаются равны посследнему.
 

ZloiJoker

Новичок
$rows[] = clone(new ViewRow ($data, $items->$idfield, $items) );

в четверке все работало и без клоне а в 5 ке даже он почему то не помогает. Есть мылси ?

-~{}~ 01.02.07 18:40:

Ни у кого даже мыслей нет ? (
 

hermit_refined

Отшельник
если нужны мысли - приведите код, который бы воспроизводил ошибку.
 

Активист

Активист
Команда форума
Попробуй следующий код
$var1 = "2";
$var2 = &$var1;
$var2 = "1";
echo $var1;

А после этого вот этот код
$var1 = "2";
$var2 = $var1;
$var2 = "1";
echo $var1;

И к тебе придет озарение, что значит "&" и с чем ее едят =)
 
Сверху