ana sayfa > 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

Pazar, 11 Nis 2010

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ı

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

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

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

coders PHP

  1. şimdilik yorum yok.
  1. şimdilik geri bağlantı yok
  • RSS
  • Newsletter
  • Twitter
  • Facebook
  • MySpace
  • FriendFeed