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

  • captainpuppys2000

    captainpuppy

    20 HAZİRAN 2013
  • MotoManTV

    MotoManTV

    10 Aralık 2009
  • theavettbrothers

    theavettbrot

    9 ŞUBAT 2007