Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> usuwanie obiektu, jak skasować obiekt przechowywany w tablicy - kontenerze
koodlaty
post
Post #1





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Mam sobie taki kontener - pole klasy:

  1. <?php
  2. private $CONTAINER = array();
  3. ?>


w polu tym przechowuje w celu późniejszego wykorzystania różne obiekty np:

  1. <?php
  2. if(!isset($this -> CONTAINER['NEW_SYSTEM_USER']))
  3. {
  4. $this -> CONTAINER['NEW_SYSTEM_USER'] = new SYSTEM_USER($this -> DB);
  5. $NEW_SYSTEM_USER = &$this -> CONTAINER['NEW_SYSTEM_USER'];
  6. }else
  7. $NEW_SYSTEM_USER = &$this -> CONTAINER['NEW_SYSTEM_USER'];
  8. ?>


działa świetnie, mam dostęp do tych obiektów gdzie mi się podoba – jest super.

Problem?
Nie potrafię skasować obiektu z „kontenera”. Wszak jest to zwykła tablica... Dlaczego więc nie działa:

  1. <?php
  2. unset($this -> CONTAINER['NEW_SYSTEM_USER']);
  3. ?>


Dlaczego po tej operacji w polu wciąż znajduje się ten obiekt?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
xpil
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.09.2006

Ostrzeżenie: (0%)
-----


Spróbuj tak:

unset($GLOBALS['_SESSION']['NEW_SYSTEM_USER']);
unset($_SESSION['NEW_SYSTEM_USER']);

Ewentualnie tak:

$_SESSION['NEW_SYSTEM_USER'] = NULL;
unset($_SESSION['NEW_SYSTEM_USER']);

Przykład zaciągnięty z php.net

--
PL

Ten post edytował xpil 29.09.2006, 08:22:24
Go to the top of the page
+Quote Post
koodlaty
post
Post #3





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Cytat(xpil @ 29.09.2006, 09:21:35 ) *
Spróbuj tak:

unset($GLOBALS['_SESSION']['NEW_SYSTEM_USER']);
unset($_SESSION['NEW_SYSTEM_USER']);

Ewentualnie tak:

$_SESSION['NEW_SYSTEM_USER'] = NULL;
unset($_SESSION['NEW_SYSTEM_USER']);

Przykład zaciągnięty z php.net



Oj... To się nie uda... To nie jest zmienna sesyjna. Chyba się nie zrozumieliśmy. :-)
Go to the top of the page
+Quote Post
wipo
post
Post #4





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

Ostrzeżenie: (0%)
-----


A nie możesz po stostu nadać jej wartości NULL?
Możesz też poszukać na temat usuwania danych z tablicy na php.net
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Dlaczego po tej operacji w polu wciąż znajduje się ten obiekt?

O jakim polu mowisz?
Mowisz o:
CONTAINER['NEW_SYSTEM_USER']
czy o:
$NEW_SYSTEM_USER
?

Bo jesli o $NEW_SYSTEM_USER, to nic dziwnego, ze ciagle masz, gdyz do $NEW_SYSTEM_USER przypisales adres obiektu, a nie adres indexu tablicy.
Jesli mowisz o CONTAINER['NEW_SYSTEM_USER'], to powiino byc puste.

Masz przykladzik do testow:
  1. <?php
  2. class test {
  3. }
  4.  
  5. $ar = array('test'=>new test());
  6. print_r($ar);
  7. $zm = &$ar['test'];
  8. print_r($zm);
  9. unset($ar['test']);
  10. print_r($ar);
  11. print_r($zm);
  12. ?>

Jak widac wyczyscilem tablice, ale pod zmienna $zm nadal jest obiekt. (zachowanie prawidlowe)
Go to the top of the page
+Quote Post
koodlaty
post
Post #6





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Cytat(wipo @ 29.09.2006, 12:38:29 ) *
A nie możesz po stostu nadać jej wartości NULL?
Możesz też poszukać na temat usuwania danych z tablicy na php.net


Usuwanie danych z tablicy nie stanowi zwykle problemu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Nadawanie NULL również nie rozwiązuje problemu.

----


Kurcze nospor masz racje!

Teraz zajażyłem...

Jeszcze nie wiem dlaczego ale masz racje. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Ten post edytował koodlaty 29.09.2006, 13:50:23
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Jeszcze nie wiem dlaczego ale masz racje.
Jak to dlaczego? Bo admin ma zawsze racje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Jeśli miales kiedys związek z logiką, to moje odpowiedzi mozesz traktować jako *aksjomaty

*aksjomat - takie cudo, ktorego sie nie dowodzi. Ogólnie jest przyjęte za prawdziwe

(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
koodlaty
post
Post #8





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

Ostrzeżenie: (0%)
-----


Pewny siebie... Tak, on jest zadziwiająco pewny siebie, mówię wam jak na mój gust aż za bardzo...

(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował koodlaty 29.09.2006, 14:07:31
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.08.2025 - 05:50