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

  • HSmasteryoda .

    HSmasteryoda

    22 Ocak 2010
  • Malwarebytes

    Malwarebytes

    22 Temmuz 2007
  • taliajoy18

    taliajoy18

    12 Temmuz 2011