1) Which is faster $this->method(); or self:method();
Ben olan yöntemleri ve sonuçları her ikisini de kullanarak aynı yöntemini 1,000,000 kere çağıran basit bir döngü kurmak hemen hemen eşittir (gerçekte -> slightly daha hızlı ama son derece kısa bir farkla idi)
2) I know the concept of static keyword but can you please post the actual Use of it. Since it can not be accessed by the instance, but is there ant benefit for that?
Ne demek istiyorsun örneği tarafından erişilen değil?
public static $x;
public static function mymethod() {};
self :: $ x ve self :: MyMethod () aracılığıyla ulaşılabilir.
Statik üyeleri birden kullanır bunların hiçbiri çok güzel vardır. Onlar tek nesnelerini oluşturmak için kullanılabilir, (bir önyükleme nesne gibi bir şey için) sınıf örneğini gerek kalmadan sınıfı yöntemlerini çağırmak için kullanılabilir
3) what is factory? How can i use it?
Fabrikalar benzer tipteki nesne örneğini oluşturmak için gerekli soyut kod için kullanılan nesnelerdir. Kullanıcıların bir hiyerarşi kullanan bir web sitesi varsa Örneğin, her kullanıcı seviyesi kendi sınıfını olabilir. Temelde tüm kullanıcı sınıfları aynı şekilde oluşturulur, ancak gerekli bir ya da iki sınıf belirli eylemleri olabilir.
Bir fabrika nesnesi tüm bu örnekleme kodunu içeren ve geliştirici basit bir arayüz sunacak. Yani yerine kod birden fazla alanlarda kendinizi tekrarlayan $ oFactory-> CREATEUSER () ve $ oFactory-> createManager () kullanabilirsiniz.
4) What is singleton? How can i use that?
Bir tekil herhangi bir zamanda bir ve sadece bir örnek olabilir bir sınıftır. Temel fikir, nesne önceden başlatılmış olup olmadığını kontrol etmek için bir statik yöntem ve statik bir değişken kullanmak olduğunu ifade etti.
Eğer yetkili kullanıcılar sorumlu kodunuzu sadece tek bir yerde, bir veritabanı soyutlama olduğundan emin olmak istiyorum beri sadece bir sınıfın bir örneği olması önemli bir Singleton kullanmak istiyorsunuz, örneğin bir güvenlik modeli bir tekil olabilir Sadece (her sorgu için aynı sunucu ve aynı veritabanına bağlayan tutmak için mantıklı olmaz) bir db bağlantısı gerektirir eğer bir tekil olabilir
Pre-PHP5.3 singletons kolayca bir baz singleton sınıfı uzatamaz geç statik bağlama araçlarının yokluğunda bu yana bazı temel kusurları var.
5) What is late static binding?
Geç statik bağlama (özellikle türetilmiş sınıfları) OO kullanımını geliştirmek için statik yöntemler için sınıf çözünürlükte bir gecikme olduğunu. LSB verir self:: veya __CLASS__ yerine onlar içeri tanımlanan sınıfın artık mevcut sınıf gidermek için
.... PHP'nin önceki sürümleri Örneğin
class parentClass {
public static function someMethod() {
echo( __CLASS__ );
}
}
class childClass extends parentClass {
}
$oObject = new childClass();
$oObject::someMethod();
çıkış parentClass tarayıcı kullanarak LSB childClass çıkışı olurdu.
Sınıf çözülene beri bu düzgün bir tek taban sınıf tanımlamak ve diğer nesneler beklenen sonuçlar ile bunu genişletmek olması artık mümkün değildir, tekil gibi birçok şeyler için yararlıdır.