在PHP中,self
關(guān)鍵字指的是當(dāng)前類(lèi),而不是當(dāng)前 trait。因此,在 trait 中使用 self
并不會(huì)指向 trait 自身。如果想要在 trait 中引用 trait 自身,可以使用 static
關(guān)鍵字。
例如:
trait MyTrait {
public static function myMethod() {
echo "This is a method in MyTrait";
}
public function callMyMethod() {
static::myMethod();
}
}
class MyClass {
use MyTrait;
}
$obj = new MyClass();
$obj->callMyMethod(); // This is a method in MyTrait
在上面的例子中,static::myMethod()
會(huì)調(diào)用 trait 中的 myMethod
方法。