Scenario:
trait A { function calc($v) { return $v+1; } } class MyClass { use A; function calc($v) { $v++; return A:
Using another trait:
trait ATrait { function calc($v) { return $v+1; } } class A { use ATrait; } trait BTrait { function calc($v) { $v++; return parent::calc($v); } } class B extends A { use BTrait; } print (new B())->calc(2); // should print 4