![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Witam,
mam pewien problem z klonowaniem obiektów. Może od razu wkleję kod:
Generalnie chodzi mi o to aby dodać zadanie (add_task()) będące kopią aktualnego obiektu. Poprzez $this->object->execute() wykonuję na aktualnym obiekcie pewne operacje, ale nie chciałbym aby były one uwzględnione w kopii obiektu ($task), a w aktualnej wersji kodu tak właśnie jest. Przenosząc cały kod drugiego warunku do pierwszego wszystko jest OK (bo metoda execute() się jeszcze nie wykonała). Wolałbym jednak pozostawić zapis nowego zadania w tym miejscu, ponieważ chciałbym aby w razie problemu z execute() nie tworzył się nowy wpis zadania. Nie wiem jak to ugryźć, nie wiem co robię źle. Wewnątrz aktualnego obiektu ($this) mam inne obiekty i być może musiałbym je klonować (wymuszenie w __clone) ale nie wiem za bardzo jak to zrobić. Pozdrawiam, pion Ten post edytował phpion 7.10.2009, 10:37:39 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze aktualne? Nie musisz zmieniać wartości pól oryginalnego obiektu. Wystarczy wykonać jeden klon i na nim pracować. Inne metody mogą albo "obrabiać klona" albo oryginalny obiekt - do wyboru, w zależności od potrzeb (i tu umieszczasz swoją logikę), np.
// zwróci: -1 20 -329 -1 798243 -329 Może to coś pomoże w Twojej sytuacji? Ten post edytował darko 21.12.2009, 00:29:41 -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 09:51 |