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