PHP, __construct ve __destruct Yapıları

PHP, __construct ve __destruct Yapıları

__construct:

Bir PHP klassı new kelimesi ile oluşturulduğunda klass içersindeki __construct fonksiyonu otomatik olarak klasın oluşturulması ile çalışacaktır. Klass Kurucusu olarak anladırılırlar.

<?php
class AnaSınıf {
   function __construct() {
       print "AnaSınıf kurucusundayızn";
   }
}

class AltSınıf extends AnaSınıf {
   function __construct() {
       parent::__construct();
       print "AltSınıf kurucusundayızn";
   }
}

$obj = new AnaSınıf();
$obj = new AltSınıf();
?>
 

  Çocuk sınıflardan kurucusu olanlar için örtük olarak ebeveyn sınıfın kurucusu çağrılmaz. Ebeveyn sınıfın kurucusunu çocuk sınıftan çağırmak için, çocuk sınıf içinden parent::__construct() çağrısı yapılması gerekir.

 

__destruct:

Bir PHP klassı yok edildiğinde klass içersindeki __destruct fonksiyonu otomatik olarak klasın yok edilmesi öncesi çalışacaktır. Klass Yıkıcısı olarak anladırılırlar.

 
<?php
class YıkıcıSınıf
{
   function __construct()
   {
       print "Kurucu çalıştın";
       $this->name = "YıkıcıSınıf";
   }

   function __destruct()
   {
       print "" . $this->name . " yok ediliyorn";
   }
}

$obj = new YıkıcıSınıf();
?>
 
 
 
 
  • Kurucularda olduğu gibi ebeveyn yıkıcılar çocuk sınıflar için dolaylı olarak çağrılmayacaktır. Ebeveyn sınıfın yıkıcısının çalışması için çocuk sınıfın yıkıcısından parent::__destruct() çağrısının yapılması gerekir.
  • Betiğin icrası exit() kullanılarak durdurulsa bile yıkıcı çağrılacaktır. exit() işlevinin bir yıkıcı içersinde çağrılması kalan kapanma yordamlarının icrasını engelleyecektir.
  • Yıkıcılar, HTTP başlıklarının gönderilmiş olmasını sağlamak için betik sonlanırken çağrılırlar. Betiğin kapanma aşamasındaki çalışma dizini bazı SAPI’lerde (Apache gibi) farklı olabilir.

 

Kaynak:

 

 

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...