Tweet

PHP 5 | Sınıflar (class): Yapıcılar ve Yıkıcılar

Yapıcı Sınıf

PHP 5 programcıların farklı sınıflar icin yapıcı metodlar belırlemelerine izin verir. Yapıcı bir metodu olan sınıflar bu metodu her yeni yaratılan obje için cağrırlar, bu nedenle yapıcı methodlar o objenin kullanılmadan once ihtiyacı olan baslatımlar için uygundur. [...]

Not:Ana yapıcılar otomatik olarak tamamen cagrılmazlar. Bir ana yapıcıyı calıştırmak için, parent::__construct() çagırışı gerekir.

Yeni birleşik yapıcıların kullanımı

CODE:
<?php 
class BaseClass {
function __construct() {
print "In BaseClass constructorn";
}
}

class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass constructorn";
}
}

$obj = new BaseClass();
$obj = new SubClass();
?>


Geri dönüm yeteneği için, eğer PHP 5 verilen sınıf için bir __construct() fonksyonu bulamazsa, sınıfın isminde eski stil bir yapıcı fonksyon arar. Bu demektirki, sınıf icersinde __construct() diye adlandırılmış başka işlevli birmethod olmadigi surece uyumsuzluk problemi çekilmez.

Yıkıcı Sınıf

PHP 5' in yeni bir özelliği; diger obje tabanlı dillerdeki gibi bir yokedici konsepti (mesela Java'da bir objeye yapilan son refererans o objenin yokedicisi tarafından yokedilir) sunuyor. Bu konsept __destruct() isimli, obje hafızadan silinmeden once çağrılan bir sınıf metodu içeriyor.

Yıkıcı Sınıf Örnegi

CODE:
<?php 
class MyDestructableClass {
function __construct() {
print "In constructorn";
$this->name = "MyDestructableClass";
}

function __destruct() {
print "Destroying " . $this->name . "n";
}
}

$obj = new MyDestructableClass();
?>

Yapıcılar gibi, ana yıkıcılarda motor tarafından tamamen otamatik olarak çağrılmazlar. Ana yıkıcıyı çalıstırmak için, parent::__destruct() yıkıcı yapısı içinde ayrı olarak çağırılmalıdır.


Dia
okanatabag@gmail.com
22 Ocak 2006 20:21

İlgili Olabilecek Makaleler


Yorumlar (0)




Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg