PHP bir yapı yöntemi içinde tekiz?

3 Cevap php

O zaten değilse sınıfını başlatmak için bir __ kurucu içinde bir tek yöntemi kullanmak için Tamam mı?

3 Cevap

Hayır - Bir tekil yöntem kurucu kullanarak bir alternatiftir.

Demek yerine $session = new Session();

Eğer demeliyim

$session = Session::getStaticSession();

Bir işlev tht bir iç statik var döndürür ve çağrılar gibi Sonra Session::getStaticSession() tanımlayan "yeni Session ()" iç statik var null ise.

Bunu kullanan her kurucudaki oluşturmak, o zaman bir tek değildir.

Bu öğretici takip ederseniz o zaman php singleton tasarım deseni nasıl kullanacağınızı anlamanıza yardımcı olacaktır.

http://www.developertutorials.com/tutorials/php/php-singleton-design-pattern-050729/page1.html

You can't use a singleton method inside a constructor, nesne zaten yaratılmış olan, ve sen hiçbir şey döndüremez gibi. Sizin tekiz yöntemi, diğer taraftan, mevcut nesneyi döndürmek veya yeni bir tane oluşturun ya ihtiyacı vardır.

Sen aşağıdaki gibi Ancak, bunu yapmak için tek bir yöntemi kullanabilirsiniz:

<?php
class X {
    // ...
    function instance() {
        static $instance;
        if(!is_a($instance, 'X')) {
            $instance = new X();
        }
    }
?>