【发布时间】:2012-08-09 23:15:54
【问题描述】:
场景:
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);
}
}
没有任何作用。
有没有办法让它工作,或者我必须完全覆盖比这更复杂的特征函数:)
【问题讨论】: