Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> __desctruct() jak?
eS...
post
Post #1





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

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


mam taka marna klase smile.gif i zastanawiam sie jak uzyc __destruct
  1. <?
  2. class BD {
  3. var $host = '';
  4. var $user = '';
  5. var $pass = '';
  6. var $dbname = '';
  7.  
  8. function __construct(){
  9. $this->connect();
  10. }
  11.  
  12. function connect(){
  13. mysql_connect($this->host,$this->user,$this->pass) or die ($this->error());
  14. mysql_select_db($this->dbname)or die ($this->error());
  15. }
  16.  
  17. function error(){
  18. echo &#092;"error\";
  19. error_log(&#092;"Błąd na stronie\", 1, \"admin@admin.pl\",\"Subject:błąd:From:eroor class\");
  20. }
  21.  
  22. //  chodzi mi o to czy to robi sie tak
  23.  function __destruct(){
  24.  $this->connect();
  25. }
  26. //czy poprostu wywoluje sie sama funkcje __destruct i po sprawie??
  27. }
  28. ?>

dzięki


--------------------
Go to the top of the page
+Quote Post
bela
post
Post #2


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


sprobuj unset(obiekt);


--------------------
Go to the top of the page
+Quote Post
eS...
post
Post #3





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

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


  1. <?php
  2.  
  3. unset($this);//?
  4. unset($this->connect());//??
  5.  
  6. ?>

uff zapomnialem dodac ze jezeli chodzi o OO to kiepsko u mnie


--------------------
Go to the top of the page
+Quote Post
bela
post
Post #4


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


nie, Panie Developerze smile.gif

  1. <?php
  2.  
  3. $obiekt = new klasa(); // tutaj wywoluje się klasa::__construct()
  4. $obiekt->blabla(); // tutaj klasa::blabla()
  5. unset($obiekt); // tutaj klasa::__destruct();
  6. ?>


winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
eS...
post
Post #5





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

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


developerze designerze tongue.gif
unset($obiekt) - i jak tu wstawic __destruct();
bo destruct mam w klasie BD i construct mam w klasie BD smile.gif i nie wiem jka to zrobic dalej

Ten post edytował eS... 28.12.2004, 18:09:44


--------------------
Go to the top of the page
+Quote Post
bela
post
Post #6


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


wrr, jak zrobisz unset to automatycznie zostanie wywolana metoda __descruct tak samo jak przy new klasa konstruktor jest wywolywany, poczytaj co robi unset tongue.gif


--------------------
Go to the top of the page
+Quote Post
Imperior
post
Post #7





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 16.10.2004

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


Ale to chyba tylko przypadek, że w __destruct() chcesz ustanowić połączenie? ohmy.gif


--------------------
Com powiedział, powiedziałem.
Go to the top of the page
+Quote Post
bela
post
Post #8


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


destruct jak sama nazwa wskazauje powinnien byc wywyolywany przy niszczeniu obiektu


--------------------
Go to the top of the page
+Quote Post
eS...
post
Post #9





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

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


Cytat(Imperior @ 2004-12-29 10:48:41)
Ale to chyba tylko przypadek, że w __destruct() chcesz ustanowić połączenie? ohmy.gif

nie ja je chce tam zniszczyc |:->


--------------------
Go to the top of the page
+Quote Post
kubatron
post
Post #10





Grupa: Zarejestrowani
Postów: 581
Pomógł: 0
Dołączył: 21.07.2003
Skąd: Jasło

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


Cytat(eS... @ 2004-12-30 11:50:30)
Cytat(Imperior @ 2004-12-29 10:48:41)
Ale to chyba tylko przypadek, że w __destruct() chcesz ustanowić połączenie?  ohmy.gif

nie ja je chce tam zniszczyc |:->

A nie lepiej w twoim przypadku zamknąc tam połączenie?Bo niszczyć to sensu nie widze :/ zreszta ja to w swoim DBDriverze innaczej będe mieć smile.gif Zaniedługo go przedstawie smile.gif


--------------------
„Człowiek jest wielki nie przez to, co posiada, lecz przez to, kim jest;
nie przez to, co ma, lecz przez to, czym dzieli się z innymi.”
Jan Paweł II
Go to the top of the page
+Quote Post
mike
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(eS... @ 2004-12-30 10:50:30)
nie ja je chce tam zniszczyc |:->

Jeżeli wydaje ci się że umieszczając coś takiego w destruktorze :
  1. <?php
  2. function __destruct()
  3. {
  4. $this->connect();
  5. }
  6. ?>


a potem robiąc :
  1. <?php
  2. unset( $objObiekt );
  3. ?>


zniszczysz połączenie z bazą danych, to jesteś w błedzie.

Owszem unset'em zniszczysz obiekt, ale nie zamkniesz połączenia z bazą utworzonego przez ten obiekt.
Dlatego musisz zrobić tak :
  1. <?php
  2. function __destruct()
  3. {
  4. $this->close();
  5. }
  6. ?>
.
Go to the top of the page
+Quote Post
kubatron
post
Post #12





Grupa: Zarejestrowani
Postów: 581
Pomógł: 0
Dołączył: 21.07.2003
Skąd: Jasło

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


Cytat(mike_mech @ 2004-12-30 18:40:06)
Cytat(eS... @ 2004-12-30 10:50:30)
nie ja je chce tam zniszczyc |:->

Jeżeli wydaje ci się że umieszczając coś takiego w destruktorze :
  1. <?php
  2. function __destruct()
  3. {
  4.     $this->connect();
  5. }
  6. ?>


a potem robiąc :
  1. <?php
  2. unset( $objObiekt );
  3. ?>


zniszczysz połączenie z bazą danych, to jesteś w błedzie.

Owszem unset'em zniszczysz obiekt, ale nie zamkniesz połączenia z bazą utworzonego przez ten obiekt.
Dlatego musisz zrobić tak :
  1. <?php
  2. function __destruct()
  3. {
  4.     $this->close();
  5. }
  6. ?>
.

Popatrz się że wyżej to mu napisałem blink.gif A chyba do tego sam by doszedł...


--------------------
„Człowiek jest wielki nie przez to, co posiada, lecz przez to, kim jest;
nie przez to, co ma, lecz przez to, czym dzieli się z innymi.”
Jan Paweł II
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 14:57