シナリオ:
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);
}
}
何も動作しません。
それを機能させる方法はありますか、これよりはるかに複雑な特性関数を完全にオーバーライドする必要があります:)