PHP 5.6.0beta1 released

Kurucular

Kurucular, new sözcüğünü kullanarak bir sınıfın yeni bir örneğini oluşturduğunuzda özdevinimli olarak çağrılan işlevlerdir. Sınıfla aynı isme sahip olan işlev kurucu işlev olur. Bir sınıfın kurucusu yoksa ama ebeveyn sınıfın varsa ebeveynin kurucusu çağrılır.

<?php
class Hediyeli_Sepet extends Sepet {
    function 
Hediyeli_Sepet() {
        
$this->mal_ekle("10"1);
    }
}
?>

Bu örnekte, new sözcüğünü kullanarak her örnek oluşturuşunda sepete "10" numaralı malzemeden 1 adet eklemek suretiyle nesneyi ilklendiren bir kurucu içeren Hediyeli_Sepet sınıfı Sepet sınıfından türetilmektedir. Kurucular değiştirge alabilir ve hatta daha kullanışlı olması için bu değiştirgeler seçimlik bile olabilir. Sınıfı değiştirgesiz kullanmayı sağlamak üzere kurucunun tüm değiştirgeleri öntanımlı değerler sağlanarak seçimlik yapılabilir:

<?php
class Kuruculu_Sepet extends Sepet {
    function 
Kuruculu_Sepet($mal "10"$adet 1) {
        
$this->mal_ekle ($mal$adet);
    }
}

// hediyeli sepetle aynı.
$normal_sepet = new Kuruculu_Sepet;

// özel sepet...
$ozel_sepet = new Kuruculu_Sepet("20"17);
?>

Kurucuda oluşan hataların çıktılanmasını önlemek için @ işlecini @new biçeminde kullanabilirsiniz.

<?php
class A
{
    function 
A()
    {
        echo 
"A'nın kurucusuyum.\n";
    }

    function 
B()
    {
        echo 
"A sınıfının B adında sıradan bir işleviyim.\n";
        echo 
"Ben A'nın kurucusu değilim.\n";
    }
}

class 
extends A
{
}

// B()'yi kurucu olarak çağır
$b = new B;
?>

A sınıfının B() işlevi ister istemez (böyle olsun istenmemesine rağmen) B sınıfının kurucusu haline gelir. PHP 4 işlevin B sınıfının içinde mi tanımlandığına yoksa miras mı alındığına bakmaz.

Dikkat

PHP ebeveyn sınıfın kurucusunu çocuk sınıftan özdevinimli olarak çağırmaz. Sınıfın ebeveyninin kurucusuna yapacağı çağrıları tanımlamak size bırakılmıştır.

Yıkıcılar, bir nesne unset() ile veya basitçe etki alanı dışına çıkarak yokedildiğinde özdevinimli olarak çağrılan işlevlerdir. PHP'de yıkıcılar yoktur. Yıkıcı işlev etkisi elde etmek için register_shutdown_function() işlevini kullanabilirsiniz.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top