Programując w Javie na Androida są dostępne w klasie dwie ciekawe metody. onCreate, onDestroy. Takie cacka dostępne są też w PHP. Nazywają się
__construct i
__destruct. Jedna i druga zaraza jest dziedziczona. Teraz trochę z nimi zamieszam. Uwaga!
Załóżmy że mamy taki malusi przykładzik.
<?php
class klasa_a {
function __construct() {
echo "Się skonstruowało! <br>";
}
}
$ob = new klasa_a();
?>
Jak widać wiem co nieco o HTML'u. ;-)
Mamy prostą klasę i se ją wywołujemy, pakując do zmiennej $ob, co spowodowało objawieniem się napisu. Co by utrudnić życie, zrobimy drugą klasę na podstawie tej pierwszej. Ci od Androida (ja do nich też należę) tak mają, to czemu nie w PHP. Nie można? A trzeba!
<?php
class klasa_a {
function __construct() {
echo "Się konstruowało!
";
}
}
class klasa_b extends klasa_a {
}
$ob = new klasa_b();
?>
Wywołujemy klasę która jest rzekomo pusta, a tu pojawia się napis. To żaden cud, błąd, spisek, układ. Klasa b dziedziczy wszystko co ma klasa a, włącznie z konstruktorami i całym dobrodziejstwem inwentarza. Dziedzictwo oczywiście można nadpisać.
<?php
class klasa_a {
function __construct() {
echo "Się skonstruowało! <br>";
}
}
class klasa_b extends klasa_a {
function __construct() {
echo "Dziedziczone ";
}
}
$ob = new klasa_b();
?>
Jak widać wyświetliło się co innego, metoda została nadpisana. Ale co zrobić że w klasie a podoba mi się wpis i chcę dodać drugi w klasie b? Jest na to metoda. Zmieniamy w klasie b konstruktor tak.
function __construct() {
echo "Dziedziczone ";
parent::__construct();
}
Po prostu odwołujemy się do rodzica i już. Cała filozofia. w ten sposób możemy ostro namieszać w klasach, co by wrogi element z mniejszym doświadczeniem, a większymi aspiracjami se zęby połamał.
Do pieca można dowalić jeszcze __destruct. Ta metoda wykonuje się kiedy skrypt jest kończony. A tak to wygląda.
<?php
class klasa_a {
function __construct() {
echo "się skonstruowało! <br>";
}
}
class klasa_b extends klasa_a {
function __construct() {
echo "Dziedziczone ";
parent::__construct();
}
function __destruct() {
echo "To już jest koniec, nie będzie nic! <br>";
}
}
$ob = new klasa_b();
echo "Jakaś linia co by była?!! <br>";
?>
Jak widać
destruktor wykonał się na samym końcu. W brew pozorom bardzo przydatna rzecz. Można zamykać połączenie z bazą kiedy robimy to w swojej klasie, można zamykać plik, co by nie zapomnieć, a dane nie poszły se w siną dal, można dać stopkę kiedy tworzymy stronę w jakiejś zagmatwanej stronie... można zamieszać, ja tylko dałem marny przykład co by wiedzieć co w trawie piszczy.
Brak komentarzy:
Prześlij komentarz
Konstruktywne komentarze mile widziane.
Wulgaryzmy, obraźliwe stwierdzenia będą usuwane.