![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Czy w PHP obiekt może usunąć się sam? unset($this); nie działa (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Z manuala: It is not possible to unset $this inside an object method since PHP 5. A jak można to zrobić inaczej? Ten post edytował ayeo 15.04.2008, 11:45:39 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 9 Dołączył: 26.01.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A próbowałeś dopisać destruktor do klasy?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Z tego co wiem, nie jest to możliwe. Zresztą... do czego byłoby Ci to potrzebne?
|
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
@l0ud, do niczego nie jest mi to w sumie potrzebne. Pytam czysto hipotetycznie. unset($this); usuwa tylko referencję do tego obiektu. :/
|
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 463 Pomógł: 49 Dołączył: 27.12.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Obiekty usuwaj sie same ;] mozesz to zaobserowawac dodajac desruktor jest on wywolywany kiedy obiekt przestaje istniec wiec jest kasowany ;]
np :
link Ten post edytował Piniek 15.04.2008, 13:33:34 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
bo u mnie unset zadzialalo (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi mi o usuwanie obiektu z jego wnętrza.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
no to desctructorem, inaczej (tak mi sie wydaje) nie da
|
|
|
![]()
Post
#9
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
przy pewnych ograniczeniach - da się. zakładając, że wszystkie instancje obiektu przypisane są do jakichś zmiennych globalnych (a to częsta sytuacja), w metodzie kasującej można zastosować procedurę:
1. pobrać nazwę własnej klasy. 2. przeszukać tablicę globals i wyłuskać wszystkie wpisy które są instancjami naszej klasy. 3. przelecieć się po wszystkich pasujących funkcją unset() 4. po skasowaniu ostatniejinstancji obiekt zostaje zniszczony (wywołuje się destruktor - sprawdzałem). powodzenia. |
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
@nevt, dziękuję bardzo za wskazówki! Pozdrawiam!
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 09:45 |