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

  • Gavin Hoey

    Gavin Hoey

    21 Aralık 2007
  • RogerBuckChrist

    RogerBuckChr

    9 Temmuz 2011
  • Tire Rack

    Tire Rack

    31 Mayıs 2007