Bu Blogda Ara

12 Temmuz 2010 Pazartesi

Php sınıflarında Yapıcılar ve yıkıcılar ( __construct ve __destruct)

PHP 5 gelişmiş sınıflar için yapıcı yöntemler ilan sağlar. bir constructor metodu her yeni oluşturulan nesne bu yöntemi arama Sınıfları, herhangi bir başlatma kullanıldığı önce nesne gerekebilir uygundur bu yüzden.

Not: Aile inşaatçı örtük eğer çocuk sınıfta bir yapıcı tanımlar denilen değildir. amacıyla gerekli olan bir ebeveyn yapıcı, ebeveyn için bir çağrı:: __construct () çocuk constructor içinde çalıştırın.

Örnek 1 yeni birleşik inşaatçı kullanarak
sınıf BaseClass (
function () (__construct
print "BaseClass yapıcısı \ n";
)
)

sınıf alt sınıf BaseClass (uzatır
function () (__construct
veli:: __construct ();
print "alt sınıf yapıcısı \ n";
)
)

$ Nesne = new BaseClass ();
$ Nesne = new alt sınıf ();
?>

PHP 5 a () fonksiyonu verilen bir sınıf için __construct bulamazsanız geriye doğru uyumluluk için, bu eski tarz constructor fonksiyonu için, sınıfın ismi ile arayacaktır. Etkili, o sınıfı (bir yöntem __construct adlı olsaydı uyumluluk sorunları olurdu sadece böyledir) hangi farklı anlam kullanıldı anlamına gelir.
Çöp yakma fırını
(Void __destruct) void

PHP 5 bir yoketme kavram diğer nesne yönelimli diller, benzer tanıttı C + + gibi. Yoketme yöntemi olarak en kısa sürede belirli bir nesne tüm başvuruları kaldırılır veya nesne açıkça yok edilir veya kapatma sırada herhangi bir sırada çağrılır.

Örnek 2 yoketme Örnek
sınıf MyDestructableClass (
function () (__construct
print "constructor \ n";
$ This-> name = "MyDestructableClass";
)

function () (__destruct
print "yok edilmesi". $ This-> ismi. "\ N";
)
)

$ Nesne = new MyDestructableClass ();
?>

yapıcıları gibi, ebeveyn yıkıcı örtük motor denilen olmayacaktır. amacıyla bir ebeveyn yoketme çalıştırmak için, biri açıkça üst araması gerekir: () yoketme vücutta __destruct.

Not: Yıkıcılar script kapatma sırasında HTTP zaten gönderildi başlıklarını çağırdı. script kapanma aşamasında çalışma dizini bazı SAPI'lerden (Apache gibi farklı olabilir).

Not: yoketme (script fesih zamanında denir) bir istisna atmaya çalışılıyor ölümcül bir hata olur.

Hiç yorum yok:

Yorum Gönder