Bir kurucu kullanarak Faydaları?

5 Cevap php

PHP OOP hakkında daha fazla bilgi edinmek için çalışırken görevimi. Ben yapıcı işlevi karşısında iyi bir kaç kez gelmiş ve sadece artık göz ardı edemeyiz. Benim anlayış, yapıcı bir nesne oluşturmak anın denir, bu doğru mu?

Ama ben onların dediği gibi "normal" işlevleri veya yöntemlerini kullanabilirsiniz eğer neden bu kurucu oluşturmak gerekir?

cheers, Keith

5 Cevap

Nesne oluşturulduğunda Evet yapıcı denir.

Bir kurucu yararlılığı küçük bir örnek bu

class Bar
{
    // The variable we will be using within our class
    var $val;

    // This function is called when someone does $foo = new Bar();
    // But this constructor has also an $var within its definition,
    // So you have to do $foo = new Bar("some data")
    function __construct($var)
    {
        // Assign's the $var from the constructor to the $val variable 
        // we defined above
        $this->val = $var
    }
}

$foo = new Bar("baz");

echo $foo->val // baz

// You can also do this to see everything defined within the class
print_r($foo);

UPDATE: A question also asked why this should be used, a real life example is a database class, where you call the object with the username and password and table to connect to, which the constructor would connect to. Then you have the functions to do all the work within that database.

Yapıcı bunu kullanmaya başlamadan önce nesnenin belirli bir devlet koymak olduğundan emin olmak için izin verir. Nesne kullanılacağı için gerekli olan belirli özelliklere sahiptir Örneğin, sen yapıcısı içinde başlatılamıyor olabilir. Ayrıca, yapıcı bir etkili yolu nesneleri başlatmak için izin verir.

Kurucu fikri nesne için veri başlangıç ​​demet hazırlamak, bu yüzden expectedly davranabilir.

Just call a method bunu unutmayın, çünkü bir anlaşma değil, ve bu sözdizimi "çalışmaları öncesi gerekli" olarak belirtilen olamaz - böylece "kırık" nesne alırsınız.

Kurucular bir çok şey için iyidir. Onlar sınıfta değişkenlerini başlatmak. Bir BankAccount sınıf oluşturma söylüyorlar. $ B = new BankAccount (60); banka hesabına bir başlangıç ​​değeri veren bir kurucusu vardır. Bunlar temelde sınıf içinde değişkenleri ayarlamak veya onlar da diğer sınıfları (miras) başlatabilirsiniz.

Bir nesne oluşturulduğunda başlatma yapılır için yapıcı olduğunu.

Bu kapsülleme fikrine karşı gider çünkü yeni oluşturulan bir nesne üzerinde keyfi bir yöntemi çağırmak istemem, ve kendi iç işleyişini içsel bilgiye sahip bu nesneyi kullanarak (ve daha fazla çaba gerektirir) kodu gerektirir.