Czy php domyślnie zwraca referencję? Czy jest sens narzucenia mu typu zwracanego (w tym wypadku ref)?
$b = clone Engine::$builds->fetchById( ISecur($get->id, true) ); $b->someStuff();
Metoda klasy Builds odpowiedzialna za zwrócenie referencji do obiektu:
public function &fetchById($bid) { if($this->count() > 0){ foreach($this as $b) if ($b->id == $bid){ return $b; } } else return NULL; }
Otóż co się dzieje.. po wykonaniu metody lub zmodyfikowaniu właściwości obiektu $build następuje zmiana w tablicy obiektów $builds co jest akcją przeze mnie niepożądaną. Chcę kopię obiektu, a nie referencję. Dlaczego pomimo użycia clone zwraca mi referencję? Czy dlatego że metoda ma &?
Dodam, że w większości przypadków potrzebna mi referencja do danego obiektu zwracana przez tę metodę, ale w tej sytuacji nie może być to referencja.