如何覆盖特征函数并从被覆盖的函数调用它?
场景:
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);
}
}
没有任何效果。
有没有办法让它工作,或者我必须完全覆盖比这个:)