WebDeveloper
 g│≤wna | forum manual | skrypty |  artyku│y |  projekty | porady |  zasoby |  linki 
dzia│y
  •  manual PHP
  •  skrypty PHP
  •  artyku│y
  •  projekty
  •  porady
  •  zasoby
  •  linki
  •  
    forum
  •  php
  •  apache
  •  mysql
  •  postgresql
  •  faq php
  •  pomocnik php
  •  
    news
  • Porcjowanie wynik≤w zapytania
  • Kartki Internetowe
  • PHP + MySQL + Windows 98
  • Bezpieczne uploadowanie plik≤w
  • Przegl▒danie obrazk≤w z bazy PostgreSql.
  • Co to jest WebDeveloper?
  • Instalujemy serwer baz danych !
  • Sesje w PHP4 !
  • Dodaj poradΩ !!!
  • Zastosowano... PHP !
  • redakcja

    Je╢li masz ciekawe informacje odno╢nie PHP, skrypty, porady, linki itp. lub chcia│by╢ wsp≤│tworzyµ serwis PHP.zone.pl daj nam znaµ na email !



    dodaj poradΩ !


    Powered by:
    PHP
    Apache
    MySql
    Linux

    users online: 8

    Rozdzia│ 13. Klasy i objekty

    class

    Klasa jest zbiorem zmiennych i funkcji pracuj▒cych na tych zmiennych. Klasa jest definiowana przy u┐yciu poni┐szej sk│adni:

     
    <?php
     class Koszyk {
         var $items;  // zawarto╢µ naszego koszyka
       
         // dodajemy $num sztuk artyku│u numer $artnr do koszyka
     
         function add_item ($artnr, $num) {
             $this->items[$artnr] += $num;
         }
       
         // usuwa $num sztuk artyku│u numer $artnr z koszyka
     
         function remove_item ($artnr, $num) {
             if ($this->items[$artnr] > $num) {
                 $this->items[$artnr] -= $num;
                 return true;
             } else {
                 return false;
             }   
         }
     }
     ?>
          

    Powy┐szy listing zawiera definicjΩ klasy Koszyk, kt≤ra sk│ada siΩ z skojarzeniowej tablicy przedmiot≤w oraz dw≤ch funkcji: dodaj▒cej i usuwaj▒cej elementy z tej tablicy.

    Klasy s▒ typami, kt≤re zawieraj▒ kopiΩ aktualnych zmiennych. Aby utworzyµ zmienn▒ porz▒danego typu, zastosuj operator new.

     
    $koszyk = new Koszyk;
     $koszyk->add_item("10", 1);
         

    W ten spos≤b zostanie utworzony obiekt $koszyk klasy Koszyk. Wywo│anie funkcji add_item() na rzecz tego obiektu, spowoduje dodanie 1 sztuki artyku│u nr. 10 do koszyka.

    Klasy mog▒ byµ rozszerzane o inne klasy. Klasa rozszerzona (pochodna), posiada wszystkie zmienne i funkcje klasy bazowej oraz swoje definicje, choµ nie jest wspierane wielokrotne dziedziczenie. KlasΩ rozszerzon▒ tworzy siΩ u┐ywaj▒c s│owa extends.

     class Nazwany_Koszyk extends Koszyk {
         var $wlasciciel;
      
         function ustaw_wlasciciel ($nazwa) {
             $this->wlasciciel = $nazwa;
         }
     }
         

    Powy┐szy listing przedstawia definicjΩ klasy Nazwany_Koszyk, kt≤ra dziedziczy wszystkie zmienne i funkcje po klasie bazowej Koszyk, a dodatkowo okre╢la zmienn▒ $wlasciciel oraz funkcjΩ ustaw_wlasciciel(). Funkcja ta umo┐liwia okre╢lanie w│a╢ciciela koszyka. Wci▒┐ mo┐esz u┐ywaµ funkcji z klasy Koszyk na obiektach klasy Nazwany_koszyk.

     
    $ncart = new Nazwany_Koszyk;        
    // tworzy nazwany koszyk
    
    $ncart->ustaw_wlasciciel ("kris"); 
    // nazwa koszyka (w│a╢ciciela)
    
    print $ncart->wlasciciel;          
    // wy╢wietla nazwΩ w│a╢ciciela koszyka
    
    $ncart->add_item ("10", 1);        
    // (u┐ycie odziedziczonej funkcji)     
    

    W funkcjach nale┐▒cych do klasy, zmienna $this okre╢la obiekt w kt≤rym zosta│a okre╢lona. Mo┐esz u┐ywaµ wyra┐enia $this->nazwa_x, aby dostaµ siΩ do zmiennej lub funkcji nazwa_x w bie┐▒cym obiekcie.

    Konstruktory to funkcje umieszczone w klasie, kt≤re s▒ automatycznie wywo│ywane podczas tworzenia nowego obiektu klasy. Konstruktor posiada zawsze tak▒ sam▒ nazwΩ jak nazwa klasy dla kt≤rej pracuje.

     
    class Auto_Koszyk extends Koszyk {
         function Auto_Koszyk () {
             $this->add_item ("10", 1);
         }
     }
         

    Powy┐ej zdefiniowali╢my klasΩ Auto_Koszyk. Klasa zawiera konstruktor o tej samej nazwie, kt≤ry podczas tworzenia nowego obiektu tej klasy, automatycznie dodaje do koszyka jedn▒ sztukΩ artyku│u nr. 10. Konstruktory mog▒ r≤wnie┐ pobieraµ dowolne argumenty, co czyni jej bardziej u┐ytecznymi.

    class Konstruktor_Koszyk extends Koszyk {
      function Konstruktor_Koszyk ($item = "10", $num = 1) {
         $this->add_item ($item, $num);
         }
     }
     
     
     
     $domyslny_koszyk   = new Konstruktor_Koszyk;
     
      
     $inny_koszyk = new Konstruktor_Koszyk ("20", 17);
         

    Ostrze┐enie

    Dla klas rozszerzonych (pochodnych), konstruktor klasy bazowej nie jest automatycznie wywo│ywany w momencie wywo│ania konstruktora klasy pochodnej.

     

    wstecz spis tresci dalej

    kontakt

    autor:

    Hubert Mierzwiak

    wsp≤│praca:

    Piotr Karolak

    Chcesz prowadziµ sw≤j dzia│ tematyczny typu XML, SQL, admin, JavaScript, itp?
    Napisz do nas !
     
    skrypty
  • designer.zip
  • vipAuth.tgz
  • phpCenzura.tgz
  • vip_php.tgz
  • pomocnik_light
  • ankieta
    Co s▒dzisz o stworzeniu FAQ PHP?
    super!
    po co?

    poprzednie

    newsletter

    wpisz sw≤j email i wci╢nij Enter

    linuxnews.pl
  • KRRiTV stra┐nikiem!?
  • Dzisiejsze zebranie...
  • Felieton w warunkach ekstremalnych
  • Nexidion Designer
  • Solaris OpenSource
  • KDE 2.0.1
  • Jest ju┐ nowy Debian...
  • Tydzie± min▒│...




  • Manual | Skrypty | Artyku│y | Projekty
    Porady | Zasoby | Linki
    G│≤wna | Forum

    Copyright 2000 Hubert Mierzwiak