Scénario :
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
Ce code ne fonctionne pas, et je ne trouve pas de moyen d'appeler une fonction de trait comme si elle était héritée. J'ai essayé d'appeler self::calc($v)
, static::calc($v)
, parent::calc($v)
, A::calc($v)
et les suivantes :
trait A {
function calc($v) {
return $v+1;
}
}
class MyClass {
use A {
calc as traitcalc;
}
function calc($v) {
$v++;
return traitcalc($v);
}
}
Rien ne fonctionne.
Existe-t-il un moyen de le faire fonctionner ou dois-je remplacer complètement la fonction trait qui est beaucoup plus complexe que celle-ci :)