::Podręcznik PHPPoprzedniRozdział 14. Klasy i ObiektyNastępny::Uwaga!
Poniższe dotyczy tylko PHP 4.
Czasami dobrze jest odnosić się do funkcji i zmiennych w klasie bazowej
lub odnosić się do funkcji i klas które nie mają jeszcze instancji. Służy
do tego operator ::.
class A
{
function przyklad()
{
echo "Jestem orginalną funkcją A::przyklad().<br>\n";
}
}
class B extends A
{
function przyklad()
{
echo "Jestem przedefiniowaną funkcją B::przyklad().<br>\n";
A::przyklad();
}
}
// nie ma obiektu klasy A.
// poniższe wyświetli
// Jestem orginalną funkcją A::przyklad().<br>
A::przyklad();
// stwórz nowy obiekt klasy B.
$b = new B;
// poniższe wyświetli
// Jestem przedefiniowaną funkcją B::przyklad().<br>
// Jestem orginalną funkcją A::przyklad().<br>
$b->przyklad();
Powyższy przekład wywołuje funkcję przyklad() z klasy A, ale nie tworząc
obiektu tej klasy, przez co nie możemy napisać nic w stylu $a->przyklad().
Zamiast tego możemy wywołać przyklad() jako 'funkcję klasy', czyli jako
funkcję tylko klasy, nie żadnego obiektu tej klasy.
Istnieją funkcje klasy, ale nie ma zmiennych klasy. Faktycznie w czasie
wykonania nie ma żadnego obiektu. W związku z tym funkcje klasy nie mogą
używać żadnych zmiennych obiektu (ale mogą używać zmiennych lokalnych i
globalnych), ani w ogóle $this.
W powyższym przykładzie, klasa B przedefiniowuje funkcję przyklad().
Orginalna definicja z klasy A jest zasłonięta i niedostępna, chyba że
odwołasz się do konkretnej implementacji poprzez operator ::. Aby to
zrobić, napisz A::przyklad() (powinieneś jednak użyć parent::przyklad(),
tak jak to pokazano w następnej części).
W tym kontekście, istnieje bieżący obiekt i który ma zmienne obiektu. W
związu z tym jeśli funkcja jest użyta Z WEWNĄTRZ funkcji obiektu, możesz
używać $this i zmiennych obiektu.
PoprzedniSpis treściNastępnyKonstruktoryPoczątek rozdziałuparent
Wyszukiwarka
Podobne podstrony:
keyword paamayim nekudotayimkeyword paamayim nekudotayimkeywordskeyword extendskeywordsadv?d keywordsadv modify keywordsKeyword Self TestkeywordskeywordskeywordskeywordsKEYWORDSkeywordswięcej podobnych podstron