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

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

11 Nisan 2010  |  Yazar: coders  |  Yorum Yok  |  15 kez okundu
Facebook'da Paylaş Twitter'da Paylas FriendFeed'de Paylaş PHP 5 | Sınıflar (class): Yapıcılar ve Yıkıcılar

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.

<?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.

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

<?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.

Okan ATABAĞ

Facebok'ta Paylaş

Benzer Yazılar

Etiketler: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
avatar

Ahmet Ates

http://www.coders.gen.tr/ 25 yasindayim. Z.K.U Biyomedikal Cihaz Teknolojisi bölümünü okudum, Programlama dilleri arasindan ilgilendiğim ve profesyonel olarak hizmet verdiğim dil Fortran'dir. Web olarak Php,Css ve hazır sistemler olarak Wordpress ve Vbulletine hayranlık besliyorum.

Bu yazı hakkında birşeyler demek ister misiniz?

RSS üzerinden bu yazıya yapılan yorumları takip edin.

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir.

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Programlama