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

  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • Ordetta Price

    Ordetta Pric

    12 EYLÜL 2011
  • MofoHifi Records

    MofoHifi Rec

    15 HAZİRAN 2006