php self能否在trait中使用

PHP
小樊
85
2024-07-13 02:01:22

在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 方法。

0