Szenario:
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
Dieser Code funktioniert nicht, und ich kann keine Möglichkeit finden, eine Trait-Funktion aufzurufen, wie sie vererbt wurde. Ich habe versucht, aufzurufen self::calc($v)
, static::calc($v)
, parent::calc($v)
, A::calc($v)
und die folgenden:
trait A {
function calc($v) {
return $v+1;
}
}
class MyClass {
use A {
calc as traitcalc;
}
function calc($v) {
$v++;
return traitcalc($v);
}
}
Nichts funktioniert.
Gibt es eine Möglichkeit, um es zu machen, oder muss ich vollständig überschreiben die Trait-Funktion, die viel komplexer als diese ist :)