mam taki kod:
CODE
$_emptyItem = new stdClass();
$_emptyItem->title = '';
$_emptyItem->nr = 0;
$_emptyItem->price = 0;
$_emptyItem->status->no_item = 0;
$itm1 = clone $_emptyItem;
$itm1->status->no_item = 14;
$itm1->nr =4;
var_dump($itm1);
$lista[] = $itm1;
$itm2 = clone $_emptyItem;
$itm2->status->no_item = 434;
$itm2->nr =866;
var_dump($itm2);
$lista[] = $itm2;
$itm3 = clone $_emptyItem;
$itm3->status->no_item = 345;
$itm3->nr =123432;
var_dump($itm3);
$lista[] = $itm3;
var_dump($lista);
$_emptyItem->title = '';
$_emptyItem->nr = 0;
$_emptyItem->price = 0;
$_emptyItem->status->no_item = 0;
$itm1 = clone $_emptyItem;
$itm1->status->no_item = 14;
$itm1->nr =4;
var_dump($itm1);
$lista[] = $itm1;
$itm2 = clone $_emptyItem;
$itm2->status->no_item = 434;
$itm2->nr =866;
var_dump($itm2);
$lista[] = $itm2;
$itm3 = clone $_emptyItem;
$itm3->status->no_item = 345;
$itm3->nr =123432;
var_dump($itm3);
$lista[] = $itm3;
var_dump($lista);
skrypt wyswietla mi coś takiego:
CODE
object(stdClass)#3 (4) {
["title"]=>
string(0) ""
["nr"]=>
int(4)
["price"]=>
int(0)
["status"]=>
object(stdClass)#2 (1) {
["no_item"]=>
int(14)
}
}
object(stdClass)#4 (4) {
["title"]=>
string(0) ""
["nr"]=>
int(866)
["price"]=>
int(0)
["status"]=>
object(stdClass)#2 (1) {
["no_item"]=>
int(434)
}
}
object(stdClass)#5 (4) {
["title"]=>
string(0) ""
["nr"]=>
int(123432)
["price"]=>
int(0)
["status"]=>
object(stdClass)#2 (1) {
["no_item"]=>
int(345)
}
}
array(3) {
[0]=>
object(stdClass)#3 (4) {
["title"]=>
string(0) ""
["nr"]=>
int(4)
["price"]=>
int(0)
["status"]=>
object(stdClass)#2 (1) {
["no_item"]=>
int(345)
}
}
[1]=>
object(stdClass)#4 (4) {
["title"]=>
string(0) ""
["nr"]=>
int(866)
["price"]=>
int(0)
["status"]=>
object(stdClass)#2 (1) {
["no_item"]=>
int(345)
}
}
[2]=>
object(stdClass)#5 (4) {
["title"]=>
string(0) ""
["nr"]=>
int(123432)
["price"]=>
int(0)
["status"]=>
object(stdClass)#2 (1) {
["no_item"]=>
int(345)
}
}
}
["title"]=>
string(0) ""
["nr"]=>
int(4)
["price"]=>
int(0)
["status"]=>
object(stdClass)#2 (1) {
["no_item"]=>
int(14)
}
}
object(stdClass)#4 (4) {
["title"]=>
string(0) ""
["nr"]=>
int(866)
["price"]=>
int(0)
["status"]=>
object(stdClass)#2 (1) {
["no_item"]=>
int(434)
}
}
object(stdClass)#5 (4) {
["title"]=>
string(0) ""
["nr"]=>
int(123432)
["price"]=>
int(0)
["status"]=>
object(stdClass)#2 (1) {
["no_item"]=>
int(345)
}
}
array(3) {
[0]=>
object(stdClass)#3 (4) {
["title"]=>
string(0) ""
["nr"]=>
int(4)
["price"]=>
int(0)
["status"]=>
object(stdClass)#2 (1) {
["no_item"]=>
int(345)
}
}
[1]=>
object(stdClass)#4 (4) {
["title"]=>
string(0) ""
["nr"]=>
int(866)
["price"]=>
int(0)
["status"]=>
object(stdClass)#2 (1) {
["no_item"]=>
int(345)
}
}
[2]=>
object(stdClass)#5 (4) {
["title"]=>
string(0) ""
["nr"]=>
int(123432)
["price"]=>
int(0)
["status"]=>
object(stdClass)#2 (1) {
["no_item"]=>
int(345)
}
}
}
W sumie obiekty klonują się prawidłowo, problem pojawia się po wrzuceniu ich do tablicy. Nie wiem dlaczego, ale pole $..->status->no_item we wszystkich obiektach w tablicy zawiera wartość ostatnio wrzuconego pola, co widać na załączonym listingu. Może ktoś wie dlaczego tak jest i czy można jakoś temu zaradzić.
Pozdrawiam.