Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] problem z przykładem
falfin
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 21.02.2007

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


Witam, dziś zacąłem się uczyć obiektowego php. Korzystam z książki "PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie trzecie". Jednym z pierwszych przykładów jest coś takiego:
  1. <?php
  2. class nazwaklasy
  3. {
  4. function _constructor($param)
  5. {
  6. echo "konstruktor wywołany z parametrem $param<br />";
  7. }
  8. }
  9. $a = new nazwaklasy('pierwszy');
  10. $a = new nazwaklasy('drugi');
  11. $a = new nazwaklasy();
  12. ?>


W książce jest napisane że powinno to wyświetlić wynik:
konstruktor wywołany z parametrem pierwszy
konstruktor wywołany z parametrem drugi
konstruktor wywołany z parametrem

Jednak u mnie nie wyświetla się nic! W czym problem?
Aha i jeszcze jedno może mi ktoś wytłumaczyć łopatologicznie do czego służy funkcja _construct?
Przeczytałem wytłumaczenie z ksiązki jednak jest ono troche zawiłe i niewiem czy wszystko zrozumiałem smile.gif
Go to the top of the page
+Quote Post
gebp
post
Post #2





Grupa: Zarejestrowani
Postów: 180
Pomógł: 6
Dołączył: 10.04.2006

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


  1. <?php
  2. class nazwaklasy
  3. {
  4. function nazwaklasy($param)
  5.  {
  6.  echo "konstruktor wywołany z parametrem $param<br />";
  7.  }
  8. }
  9. $a = new nazwaklasy('pierwszy');
  10. $a = new nazwaklasy('drugi');
  11. $a = new nazwaklasy();
  12. ?>
Go to the top of the page
+Quote Post
Lynks
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 30.10.2006
Skąd: Łódź

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


Nie _constructor tylko __construct smile.gif

Zwróć również uwagę na podwójny podkreślnik.

A co do drugiej części pytania to: Konstruktor

Pozdrawiam

Ten post edytował Lynks 4.03.2007, 21:58:16


--------------------
Studia przeszkadzają w spaniu
Go to the top of the page
+Quote Post
falfin
post
Post #4





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 21.02.2007

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


Dziekuje! obydwie odpowiedzi były poprawne (jednak bardziej chodziło mi o to o czym napisał Lynks PODWÓJNE podkreślenie!) Mam jeszcze jedną prośbe: prosze o proste wytłumaczenie construct i destruct.
Go to the top of the page
+Quote Post
Lynks
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 30.10.2006
Skąd: Łódź

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


__construct - metoda, która jest wykonywana przy tworzeniu nowego obiektu
__destruct - metoda, która jest wykonywana gdy obiekt kończy swój żywot

Prościej chyba się nie da smile.gif

Jak już napisałem w poście powyżej, jest to całkiem przyjemnie wytłumaczone w PHPEdi, razem z prościutkim przykładem. __construct() __destruct()

Pozdrawiam

PS. Wyszukiwarka PHPEdi coś szwankuje

Ten post edytował Lynks 5.03.2007, 00:34:58


--------------------
Studia przeszkadzają w spaniu
Go to the top of the page
+Quote Post
plisek
post
Post #6





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 28.08.2005

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


konstruktor to metoda wywoływana w chwili tworzenia instancji danej klasy, czyli obiektu.
wykonuje się zawsze. Powody jednak moga być rózne.
Jezeli tworzymy obiekt jakiejś klasy i "na wejściu" chcemy mu ustawić jakieś parametry wtedy tak naprawde jest on w pełni wykorzystywany.

na przykład:
mamy pewną klasę Osobnik winksmiley.jpg
  1. <?php
  2. class Osobnik{
  3.  
  4.  $imie;
  5.  $plec;
  6.  
  7.  function __contruct($imie, $plec){
  8.  $this->imie=$imie;
  9.  $this->plec=$plec;
  10.  }
  11. }
  12. ?>

i teraz utworze sobie obiekt
  1. <?php
  2. $kobieta= new Osobnik('Ala', 'k');
  3. ?>


to odrazu w chwili inicjowania obiektu nadałem mu imie i plec, przekazując wartości poprzez kontruktor

można także bezpośrednio przypisac wartości zmiennym np
  1. <?php
  2. class Osobnik{
  3.  
  4.  $imie='Pola';
  5.  $plec='k';
  6.  
  7.  function __contruct(){
  8.  }
  9. }
  10. ?>


i w chwili tworzenia obiektu tej klasy, wartości te bedą przypisane do zmiennych
  1. <?php
  2. $kobieta = new Osobnik();
  3. ?>

w tym wypadku, konstruktor tez jest wywoływany, ale nic nie robi

mam nadzieje ze teraz jest jasne po co nam konstruktory winksmiley.jpg

co do destruktorów, to rzecz ma sie podobnie
wywolywany jest z chwila niszczenia danego obiektu.
możemy to jednak zrobić sami w odpowiednim dla nas momencie, właśnie dzięki metodzie __destruct()


--------------------
ThE EnD oF ThE InTErnEt !
pasy zabezpieczające
Go to the top of the page
+Quote Post
falfin
post
Post #7





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 21.02.2007

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


Wielkie dzięki! Bardzo mi pomogliście. Pozdrawiam
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: 21.08.2025 - 15:08