परिदृश्य:
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);
}
}
कुछ भी काम नहीं करता है।
वहाँ यह काम करने के लिए एक रास्ता है या मैं पूरी तरह से इस समारोह की तुलना में अधिक जटिल है, जो विशेषता समारोह को ओवरराइड करना चाहिए :)