SORU
13 AĞUSTOS 2012, PAZARTESİ


Nasıl özellik işlevi geçersiz kılar ve geçersiz işlevi çağırmak?

Senaryo:

trait A {
    function calc($v) {
        return $v 1;
    }
}

class MyClass {
    use A;

    function calc($v) {
        $v  ;
        return A::calc($v);
    }
}

print (new MyClass())->calc(2); // should print 4

Bu kod işe yaramazsa, ve miras gibi sürekli bir işlev çağrısı için bir yol bulamıyorum. Aramaya çalıştım self::calc($v), statik::calc($v), ana::calc($v):: calc($v) ve şunlardır:

trait A {
    function calc($v) {
        return $v 1;
    }
}

class MyClass {
    use A {
        calc as traitcalc;
    }

    function calc($v) {
        $v  ;
        return traitcalc($v);
    }
}

Hiçbir şey işe yaramıyor. Bu işi yapmanın bir yolu var ya da tamamen geçersiz kılmak gerekir ben sürekli işlev (bu çok daha karmaşık... :) )

CEVAP
13 AĞUSTOS 2012, PAZARTESİ


Sonuncusu neredeyse yok oldu:

trait A {
    function calc($v) {
        return $v 1;
    }
}

class MyClass {
    use A {
        calc as traitcalc;
    }

    function calc($v) {
        $v  ;
        return $this->traitcalc($v);
    }
}

Sürekli bir sınıf değil. Üyeleri doğrudan erişebilirsiniz. Temelde sadece otomatik kopyala yapıştır

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EEVblog

    EEVblog

    4 NİSAN 2009
  • HowtoDrawAndPaint

    HowtoDrawAnd

    24 EKİM 2010
  • Marina and The Diamonds

    Marina and T

    8 Temmuz 2008