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

  • BioHunta

    BioHunta

    28 Mayıs 2006
  • ETrade Supply

    ETrade Suppl

    23 Temmuz 2011
  • Richard Laxa

    Richard Laxa

    30 AĞUSTOS 2012