php5.pdf

(266 KB) Pobierz
Microsoft Word - php5.doc
PHP5
Autor
Wojciech Jurewicz
(OMEGA)
wojtek@webinside.pl
endibull@go2.pl
http://php.webinside.pl
- 1 -
Spis Tre(ci:
Wstp .................................................................................. 3
unifikowane konstruktory ..................................................... 4
destruktory ........................................................................... 5
obiekty jako referencje ........................................................ 6
klonowanie obiektów ........................................................... 7
definiowanie interfejsów ...................................................... 8
okrelanie metod i w!aciwoci jako PPP czyli: ................ 10
- Private ............................................................................. 10
- Public .............................................................................. 10
- Protected ......................................................................... 10
Klasy abstrakcyjne ............................................................ 12
elementy statyczne ............................................................ 13
__call ................................................................................. 14
__set i __get ...................................................................... 16
rzutowanie typów ............................................................... 17
wyj-tki ................................................................................ 18
definiowanie w!asnej obs!ugi wyj-tków ............................. 20
pola nazw (ze /róde! nie oficjalnych) ................................ 22
zagnie2d2one pola nazw ................................................... 23
__autoload ......................................................................... 24
final .................................................................................... 25
sta!e ................................................................................... 26
dereferencja obiektów ....................................................... 27
instanceof .......................................................................... 28
warto3 domylna parametrów z referencj- ...................... 29
- 2 -
Wst)p:
PHP5 nie jest jeszcze oficjalnie oddane do u2ytku. Aktualnej wersji mo2na u2ywa3 ale zawiera
ona sporo b!dów. Wiele elementów jest podobnych albo nawet takich samych w PHP4 i
PHP5, ale oczywicie s- ró2nice i to spore. To co przedstawi w tym artykule dzia!a w obecnej
wersji, ale do wypuszczenia PHP5 oficjalnie mo2e si du2o zmieni3. Obecn- wersje mo2esz
ci-gn-3 z http://www.php.net i sprawdzi3 przyk!ady które zaprezentuje. W PHP5 zmieniono
stare elementy jak i dodano nowe, tak np. Zmieniono model obiektów tudzie2 dodano nowe
elementy. Wprowadzono pola nazw oraz wyj-tki. Najwikszy jednak nacisk po!o2one na
programowanie obiektowe w którym zasz!y najwiksze zmiany, które mo2na porówna3 do
Javy i C++.
- 3 -
konstruktory:
W PHP4 konstruktory musia!y nazywa3 si tak jak dana klasa, czyli np. konstruktor klasy
„jakasklasa” nazywa! si „jakasklasa”. W PHP5 konstruktory s- unifikowane, czyli zawsze maj-
tak- sam- nazw: __construct(), tak wic konstruktor klasy „jakasklasa” bdzie nazywa! si
„__construct”. Nale2y pamita3 o podwójnym znaku podkrelenia na pocz-tku nazwy. W
przyk!adzie wygl-da to tak:
# Przyk,ad 1
<? php
class samochod
{
var $akcja ;
function __construct () {
$this -> akcja = ‘ start’ ;
$this -> wykonaj ();
}
function wykonaj () {
echo ‘Silnik ‘ . $this -> akcja . ‘ <br>’ ;
}
}
$ford = new samochod ;
?>
# wynik
Silnik start
Dzia!anie jest bardzo proste destruktor uruchamia si wraz z definicj- obiektu.
- 4 -
Destruktory:
W PHP4 destruktory nie by!y dostpne, przez co trzeba by!o si czasami zdrowo
nakombinowa3 aby w razie potrzeby zasymulowa3 taki pseudo destruktor. Na szczcie w
PHP5 destruktory s- i nazywaj- si: __destruct(). Oczywicie w ka2dej klasie ich inicjalizacja
wygl-da tak samo. Rozwijaj- nasz przyk!ad mo2emy wykorzysta3 destruktor do zatrzymania
silnika:
# Przyk,ad 2
<? php
class samochod
{
var $akcja ;
function __construct () {
$this -> akcja = ‘ start’ ;
$this -> wykonaj ();
}
function wykonaj () {
echo Silnik ‘ . $this -> akcja . ‘ <br>’ ;
}
function __destruct () {
$this -> akcja = ‘stop’ ;
$this -> wykonaj ();
}
}
$ford = new samochod ;
?>
# wynik
Silnik start
Silnik stop
Tutaj równie2 dzia!anie jest proste, destruktor uruchamia si wraz z "niszczeniem" obiektu, w
tym wypadku kiedy skrypt koPczy dzia!anie.
- 5 -
Zgłoś jeśli naruszono regulamin