Ben diskte önbelleğe isteyen bazı nesneler var. Ben bu süreçte serialize () kullanın. Nesneleri diğer nesneler için bazı referanslar içerir. Bana unserializing zaman aynı gerçek dünya nesnesinin örneklerini çoğaltmak verecekti çünkü ben (ki başka bir yerde yapılır) olanların yanı sıra seri hale istemiyorum.
Seri hale ve sonra onları geri değiştirmeden önce (aynı nesnelere bakarak, ancak kimliği ile) dizeleri nesne başvurularını değiştirmek için, ve sınıf kodu içinde bunu yapmak için bir yolu var mı (değil önce ve sonra (un) ifadeleri serialize) ?
Şunun için iyi:
class TheStuff {
private $otherThing;
private function __yeahDudeDoThisOnSerialize() {
$this->otherThing = $this->otherThing->name;
}
private function __viceVersa() {
$this->otherThing = get_thing_by_name($this->otherThing);
}
}
serialize($someStuff);
Kötü:
class TheStuff {
private $otherThing;
public function yeahDudeDoThisOnSerialize() {
$this->otherThing = $this->otherThing->name;
}
public function viceVersa() {
$this->otherThing = get_thing_by_name($this->otherThing);
}
}
$someStuff->yeahDudeDoThisOnSerialize();
serialize($someStuff);
$someStuff->viceVersa();