PHP, MySQL, bazy danych, programowanie, skrypty, internet, strony www, PHP.org.pl

 Szukaj:  

 » php.org.pl ver. 1.1 final

Menu...

PHP, MySQL, bazy danych, programowanie, skrypty, internet, strony www, PHP.org.pl
PHP, MySQL, bazy danych, programowanie, skrypty, internet, strony www, PHP.org.pl
PHP, MySQL, bazy danych, programowanie, skrypty, internet, strony www, PHP.org.pl
PHP, MySQL, bazy danych, programowanie, skrypty, internet, strony www, PHP.org.pl
PHP, MySQL, bazy danych, programowanie, skrypty, internet, strony www, PHP.org.pl
PHP, MySQL, bazy danych, programowanie, skrypty, internet, strony www, PHP.org.pl
PHP, MySQL, bazy danych, programowanie, skrypty, internet, strony www, PHP.org.pl
PHP, MySQL, bazy danych, programowanie, skrypty, internet, strony www, PHP.org.pl
PHP, MySQL, bazy danych, programowanie, skrypty, internet, strony www, PHP.org.pl
PHP, MySQL, bazy danych, programowanie, skrypty, internet, strony www, PHP.org.pl
PHP, MySQL, bazy danych, programowanie, skrypty, internet, strony www, PHP.org.pl

 

NewsLetter...

Twój mail:

Twoje imię:

 

Sonda...


Jak podoba Ci się ta strona?

bardzo fajna
średnia
słaba
totalne dno

» Programowanie obiektowe
Wiadomo nie od dziś, że PHP obsługuje programowanie obiektowe. Tworzenie kodu obiektowego w PHP4 jest łatwe, wystarczy nieco praktyki. W niniejszym tekście postaram się wszystkich zachęcić do tejże praktyki ;). Trzeba zacząć od tego, czym jest programowanie obiektowe. Trudno to określić w jednym zdaniu ;). Kod obiektowy jest podzielony na klasy. W klasach definiuje się funkcje. Funkcje zdefiniowane w klasie są metodami. Myślę, że tyle na razie starczy. Przykładem klasy może być poniższy kod:
<?php

class strefa
{
function
hellow_world( )
{
echo
"Hellow world<br>";
}

function
online( $atrybut )
{
echo
"Przekazales do funkcji atrybut ". $atrybut;
}
}
?>

Używanie klas jest zrozumiałe i logiczne.
s <?php
$sw
= new strefa; // tworzymy nowy objekt
$sw->hellow_world();
$sw->online( 'bardzo fajny' );
?>
Wynik działania tego przykładu:
Hellow world
Przekazales do funkcji atrybut bardzo fajny

Widzicie, że to nic trudnego :). Co bardziej spostrzgawczy zauważyli strzałki :). Strzałki to wskazanie, że zmienna jest obiektem. Jeśli użyjecie strzałki przy zwykłej zmiennej otrzymacie błąd.
Do tej pory nic ciekawego nie pokazałem. Po prostu zwykła funkcja i tyle. Teraz omówimy bardzo ciekawy mechanizm używania zmiennych klasowych. W klasie można zdefiniować zmienne, które będą dostępne poprzez objekt na przykład:
<?php
class strefa
{
var
$zmienna = 'Tekst';

function
metoda()
{
echo
$this->zmienna;
}
}
?>

Przykład działania:
<?php
$sw
= new strefa;
echo
$sw->zmienna .'<br>';
$sw->zmienna = 'Nowy tekst';
echo
$sw->zmienna .'<br>';
$sw->metoda();
?>

Wynik: Tekst
Nowy tekst
Nowy tekst

W ten sposób można w bardzo łatwy sposób można używać wielu zmiennych, ale ich deklaracja nie może się odbywać innymi zmiennymi. To znaczy że:
<?php

class strefa
{
var
$zmienna = array( 'a','b','c'); // to jest dobrze
var $blabla = $zmienna; // to jest źle
}

?>

Jak widać zaczyna się konkretna zabawa :). Następny przykład również ukazuje działanie zmiennych.
<?php
class strefa
{
var
$a = 'Zmienna a';

function
bla( )
{
$this->b = 'Zmienna b';
}

function
echo_bla()
{
echo
$this->b;
}
}
?>

Przykład użycia:
<?php

$sw
= new strefa;
echo
$sw->a .'<br>';
echo
$sw->b .'<br>';
$sw->bla();
echo
$sw->echo_bla();

?>

Wynik:
Zmienna a

Zmienna b

Jak widać zmienna $b nie jest dostępna spoza klasy. Można powiedzieć, że jest ona prywatna i można ją używać tylko wewnątrz klasy. Jeśli chcecie użyć wewnątrz klasy zmienną spoza niej bez przekazywania jej za pomocą obiektu ( $sw->zmienna = $blabla ) możecie zrobić tak:
<?php
class strefa
{
function
bla()
{
global
$moja;
$this->moja = $moja;
}
}
?>

W ten sposób macie dostępną jedną zmienna w całej klasie bez definiowania jej we wszystkich metodach.
Macie teraz już jako-takie pojęcie o programowaniu obiektowym, ale to jeszcze nie wszsytko ;). Kolejnym plusem kodu objektowego jest dziedziczenie. Znowu trudno jest określić co to jest dziedziczenie w jednym zdaniu. Dziedziczenie w PHP4 to pzekazanie jednej klasie metod i zmiennych z drugiej klasy. Klasa dziedzicząca ma dostęp do wszystkich metod zdefiniowanych w klasie dziedziczonej. Definicja nie brzmi zachęcająco ale to nic trudnego :).
Przykad dziedziczenia
<?php

class strefa
{
var
$sw = 'Atrybut z klasy strefa';

function
sw()
{
$this->ws = 'Zmienna z klasy strefa';
}
}

class
php extends strefa
{
function
www()
{
echo
$this->sw .'<br>';
$this->sw();
echo
$this->ws .'<br>';
}
}

?>

Przykad użycia:
<?php

$w
= new php;

?>

Wynik:
Atrybut z klasy strefa
Zmienna z klasy strefa.

Przy okazji zobaczyliście jak wygląda konstruktor w PHP4. Jest to po prostu funkcja o tej samej nazwie co klasa. Można do niej przekazywać argumenty jak do zwykłej funkcji np:
<?php
$sw
= new strefa('atrybut 1', 'atrybut 2');
?>

Proste jak dwa kilko gwoździ :).
Musicie wiedzieć, że jeśli w klasie www istniałaby metoda sw pokryłaby ona metodę z klasy strefa. To samo tyczy się argumentów (chodzi mi o var $x) i zmiennych klasowych. Jeśli w klasie strefa macie zmienną $a ($this->a) i przypiszecie jej jakąś wartość i następnie użyjecie w klasie dziedziczącej konstrukcji $this->a = ''; to zmienna klasowa a będzie pusta. Pamiętajcie, zawsze sprawdzajcie czy zmienna jest zdefiniowana za pomocą isset() lub empty().
Teraz już wiecie jak działa programowanie obiektowe (mam nadzieję ;). Jeśli coś w dalszym ciągu jest nie jasne to piszcie do mnie postaram się w miarę możliwości pomóc.
Splatch  

 

Polecamy...

Zakopane
Polecamy skuterki z importu
noclegi Zakopane Krynica Zdrój
bilard
 
 
Wszelkie prawa zastrzeżone php.org.pl 2005.