mysqli deyim: sonuçlarının (getirme) bir dizi

0 Cevap php

Ben mysqli uzantısı kullanmak ve bir nesneye sonuç bağlamak:

class Item {
    public $id, $name;
    }
$Item = new Item;
$stmt->bind_result($Item->id, $Item->name);

$stmt->fetch() referanslar oldu $ öğesinin özelliklerinin üzerine olacak her çağrı. Ben sadece nesne klonlama ise - bu başvuruları kalır ve her iki örneği aynı anda değiştirebilirsiniz:

object(Item)#1 (2) {
  ["id"]=>
  &int(1)
  ["name"]=>
  &string(4) "name"
}

Yani onları çok clone gerçekten bir kopyasını değil, başvurulan bir veri kümesi yapar KQUEUE bir yol olmalıdır. Bu nesneleri bir dizi olarak depolanır böylece tüm verileri almak için basit, esnek bir yolu var mı? Asıl sorun başvuruları kaldırmak için nasıl: &string.

Gördüğüm tek çözüm başka bir nesne örneğini ve elle tüm özelliklerini kopyalamak için:

$Item2 = new Item;
foreach ($Item as $prop => $val)
    $Item2->$prop = $val;

gerekli değil (aslında başvurulan değil bazı ekstra olanlar dahil) tüm özelliklerini kopyalar, ve dahası - performansına bir ceza: ama bu bir overkill gibi görünüyor.

0 Cevap