Как переопределить функцию trait и вызвать ее из переопределенной функции?

Сценарий:

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

Этот код не работает, и я не могу найти способ вызвать функцию признака, как она была унаследована. Я пробовал звонитьself::calc($v), static::calc($v), parent::calc($v), A::calc($v) и следующее:

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

class MyClass {
    use A {
        calc as traitcalc;
    }

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

Ничего не работает

Есть ли способ заставить его работать или я должен полностью переопределить функцию trait, которая намного сложнее, чем эта :)

Ответы на вопрос(4)

Ваш ответ на вопрос