SORU
16 HAZİRAN 2009, Salı


Neden PHP 5.2 soyut sınıf statik yöntemler izin yok?

PHP sıkı uyarılar etkinleştirme sonra 5.2, ben aslında sıkı bir uyarı olmadan yazılmış bir projeden standartlarına sıkı uyarılar bir yük gördüm:

Sıkı Standartlar:Statik işlev::Program getSelectSQL()soyut olmamalıdırProgramda.sınıf.ınc

Söz konusu işlevi soyut üst sınıf bir Programa ait ve onun alt sınıfları, TVProgram gibi uygulanmaması gerektiği, çünkü soyut statik bildirildi.

Bu değişiklik için başvurular here buldum:

Soyut statik sınıf fonksiyonlar düştü. Bir hatadan ötürü, PHP 5.0.x ve 5.1.x sınıflarında soyut statik işlevleri sağladı. PHP 5.2.x, sadece arayüzleri onları alabilir.

Benim soru şudur: biri PHP soyut statik bir işlevi olmamalı neden net bir şekilde açıklayabilir mi?

CEVAP
16 HAZİRAN 2009, Salı


statik yöntemler onları bildirilen sınıfa ait. Sınıf uzanan zaman, aynı adı statik bir yöntem oluşturabilir, ama aslında statik soyut bir yöntemi uygulamak.

Aynı statik yöntemleri ile herhangi bir sınıfın genişletilmesi için de geçerli. Sen bu sınıfı genişletir ve aynı imza statik bir yöntem oluşturmak, aslında üst sınıf statik bir yöntem geçersiz kılma değildir

EDİT(Sept. 16, 2009)
Bu güncelleştirme. Soyut görüyorum 5.3, PHP statik yeniden çalışmaya, iyi ya da kötü. (daha fazla bilgi için http://php.net/lsb)

DÜZELTME(philfreo tarafından)
abstract static hala 5.3, LSB ilgili ama farklı PHP izin verilmez.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Elly Awesome

    Elly Awesome

    15 ŞUBAT 2010
  • JonnyEthco

    JonnyEthco

    5 EKİM 2006
  • Pepsi

    Pepsi

    1 Kasım 2005