SORU
4 Mart 2011, Cuma


Yeni öz-yeni statik

PHP 5.3 bir kütüphane PHP 5.2 üzerinde çalışmaya dönüştürmek için çalışıyorum. Ana şey önümde engel olursa return new self($options) Bu dönüştürme return new static($options); gibi geç statik bağlama aynı sonuçları elde kullanılır?

new self new static arasındaki fark nedir?

CEVAP
4 Mart 2011, Cuma


aynı sonucu elde edebilir miyim?

Gerçekten değil. 5.2, ama PHP için bir çözüm bilmiyorum.

new self new static arasındaki fark nedir?

self new anahtar kelime aslında yazılır aynı sınıfı ifade eder.

static, PHP 5.3 geç statik bağlama, yöntemi ne diye ifade eder.

, B aşağıdaki örnekte devralır A her iki yöntem. self çağırma bağlıdır A çünkü tanımlanan A'in uygulama ilk yöntem, oysa static bağlı çağrılan sınıf (get_called_class()).

class A {
    public static function get_self() {
        return new self();
    }

    public static function get_static() {
        return new static();
    }
}

class B extends A {}

echo get_class(B::get_self());  // A
echo get_class(B::get_static()); // B
echo get_class(A::get_static()); // A

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kenneth Håkonsen

    Kenneth Håk

    13 Mart 2011
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • WoodysGamertag

    WoodysGamert

    17 Aralık 2009