Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Ogólne zrozumienie programowanie obiektowego php
Deen
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.05.2009

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


Witam wszystkich, często piszę prośby na tym forum, zazwyczaj dostaję oczekiwane odpowiedzi, dzisiaj jednak piszę w dość nietypowej sprawie.
Dla zabawy postanowiłem zrobić sobie taki trochę większy projekt (php, mysql elementy js) mini portalik który może kiedyś umieszczę w sieci, może nie.
Chciałem się nauczyć czegoś podczas jego tworzenia, przeglądając sieć w poszukiwaniu kursów php poznałem pętle, sesje i inne podstawy w php.
Pytanie mam co do programowania obiektowego w php.
Chodzi tutaj o klasy i obiekty.
W jaki sposób najłatwiej pojąć po co to w ogóle jest potrzebne, w jakich sytuacjach użyć, zamiast czego itp.
Nie mogę ogarnąć tego może Wy macie jakieś pomysły jak do tego podejść, nie chodzi tutaj o naukę programowania obiektowego tylko praktyczne przykłady które pokażą po co to jest.
Dajmy na to widziałem gdzieś jakis przykład z włączaniem i wyłączaniem żarówki, no ok ale jakie ma to zastosowanie na normalnych portalach.

Zapraszam do rozmowy, wypowiedzcie się na ten temat, pomóżcie innym zrozumieć o co chodzi. Pozdrawiam.
Go to the top of the page
+Quote Post
Ghost_78
post
Post #2





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

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


najprosciej mowiac klasa to poslaczenie struktury (tablicy) z funkcjami. tak jak pisales o przykladzie żarówki - bardzo dobry przyklad.
chcesz cos innego to zobacz na ponizszy banalny przyklad:

  1. class liczby {
  2. public $liczba1;
  3. public $liczba2;
  4.  
  5. public function dodaj(){
  6. echo $this->liczba1 + $this->liczba2;
  7. }
  8.  
  9. public function odejmij(){
  10. echo $this->liczba1 - $this->liczba2;
  11. }
  12. }
  13.  
  14.  
  15. $ob = new liczby();
  16. $ob->liczba1 = 10;
  17. $ob->liczba2 = 5;
  18. $ob->dodaj();
  19. $ob->odejmij();


na podstawie powyzszego przykladu mozesz sobie zrobic prosty kalkulator. jezeli poznales juz troche PHP to pomysl teraz jak musialbys to rozwiazac w sposob bez uzycia obiektow.

kolejny przykład. pobierasz sobie z bazy danych dane osoby i chcesz sobie w rozny sposob formatowac jego dane:
  1.  
  2. //definiujesz klase
  3. class Osoba{
  4. public $imie;
  5. public $nazwisko;
  6. public $adres;
  7.  
  8. public function __construct($idOsobyWbazie){
  9. //tu robisz sobie odczyt z bazy i przypisujesz odpowiednie dane
  10. $query=mysql_query("SELECT * FROM osoby WHERE id='$idOsobyWbazie' ");
  11. $row=mysql_fetch_assoc($query);
  12. $this->imie = $row[imie];
  13. $this->nazwisko = $row[nazwisko];
  14. $this->adres = $row[adres];
  15. }
  16.  
  17. public function pokazImie(){
  18. echo $this->imie;
  19. }
  20.  
  21. public function pokazNazwisko(){
  22. echo $this->nazwisko;
  23. }
  24.  
  25. public function pokazLadnieDane(){
  26. echo '<table border="1">';
  27. echo '<tr><td>'.$this->imie.'</td><td>'.$this->nazwisko.'</td></tr>';
  28. echo '<tr><td colspan="2">'.$this->imie.'</td></tr>';
  29. echo '</table>';
  30. }
  31. }
  32.  
  33. // tworzysz obiekty osob
  34. $osoba1 = new Osoba(1);
  35. $osoba1->pokazLadneDane();
  36.  
  37. $osoba2 = new Osoba(5);
  38. $osoba2->pokazLadneDane();


pisane z glowy wiec moze miec jakies male bledy

klasy to kolejny sposob miedzy innymi na uproszczenie kodu i poprawienie jego czytelnosci - poza tym jak pocwiczysz troche z prostymi klasami i zaczniesz budowac troche bardziej skomplikowane to zobaczysz jakie to dobrodziejstwo.

Ten post edytował Ghost_78 15.11.2010, 10:56:56
Go to the top of the page
+Quote Post
wookieb
post
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Ja p......
Tematów z tej dziedziny jest tyle ile mrówków nad którymi siedze. Od tego są całe książki, tematy na forum więc nie zawracaj "słowiowej" dupy takimi redundantnymi pytaniami.
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: 23.08.2025 - 14:10