Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pytanie o konstruktor
SzybkiKazik
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 2.08.2010

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


Witam,

Mam pytanie o różnice między takimi dwoma rozwiązaniami, chodzi o konstruktory.

Rozwiązanie 1

  1. class Osoba {
  2.  
  3. private $imie;
  4. private $nazwisko;
  5. private $www;
  6. private $email;
  7. private $telefon;
  8.  
  9. function __construct($imie, $nazwisko, $www, $email, $telefon){
  10.  
  11. $this->imie = $imie;
  12. $this->nazwisko = $nazwisko;
  13. $this->www = $www;
  14. $this->email = $email;
  15. $this->telefon = $telefon;
  16.  
  17. }
  18.  
  19. function dodajOsobe($imie, $nazwisko, $www, $email, $telefon) {
  20.  
  21. $db = new Database();
  22. $db -> DBConnect(HOSTNAME, USERNAME, PASSWORD, DB);
  23. $db -> DBQuery('INSERT INTO osoba SET
  24. imie=\''.$imie.'\',
  25. nazwisko=\''.$nazwisko.'\',
  26. www=\''.$www.'\',
  27. email=\''.$email.'\',
  28. telefon=\''.$telefon.'\';');
  29.  
  30. $db -> DBClose();
  31. }
  32.  
  33. }


W tym wypadku jeżeli mamy konstruktor to aby utworzyć obiekt trzeba zrobić tak:

  1. $imie = "Jan";
  2. $nazwisko = "Testowy";
  3. $www = "http://www.test.pl";
  4. $email = "osoba@test.pl";
  5. $telefon = "666777888";
  6.  
  7. $dodaj_osoba = new Osoba($imie, $nazwisko, $www, $email, $telefon);
  8. $dodaj_osoba -> dodajOsobe($imie, $nazwisko, $www, $email, $telefon);


Rozwiązanie 2

  1. class Osoba {
  2.  
  3. function dodajOsobe($imie, $nazwisko, $www, $email, $telefon) {
  4.  
  5. $this->imie = $imie;
  6. $this->nazwisko = $nazwisko;
  7. $this->www = $www;
  8. $this->email = $email;
  9. $this->telefon = $telefon;
  10.  
  11. $db = new Database();
  12. $db -> DBConnect(HOSTNAME, USERNAME, PASSWORD, DB);
  13. $db -> DBQuery('INSERT INTO osoba SET
  14. imie=\''.$imie.'\',
  15. nazwisko=\''.$nazwisko.'\',
  16. www=\''.$www.'\',
  17. email=\''.$email.'\',
  18. telefon=\''.$telefon.'\';');
  19.  
  20. $db -> DBClose();
  21. }
  22.  
  23. }


Tworzymy obiekt:

  1. $imie = "Jan";
  2. $nazwisko = "Testowy";
  3. $www = "http://www.test.pl";
  4. $email = "osoba@test.pl";
  5. $telefon = "666777888";
  6.  
  7. $dodaj_osoba = new Osoba();
  8. $dodaj_osoba -> dodajOsobe($imie, $nazwisko, $www, $email, $telefon);


Moje pytania są następujące:

1. Które rozwiązanie jest bardziej poprawne?
2. Jaka jest różnica między tymi dwoma rozwiązaniami?

Będę bardzo wdzięczny jeżeli ktoś znajdzie chwilkę na wytłumaczenie mi różnic i poprawności rozwiązania.

Z góry bardzo dziękuję i pozdrawiam.
Kazik.
Go to the top of the page
+Quote Post

Posty w temacie


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: 21.12.2025 - 00:13