1

我只是在玩 trait 来看看它的目的是什么,我注意到它允许一个类使用多个 trait 类,而从抽象扩展的类可以一次从一个抽象扩展

这是我的例子:

trait parentClass
{
    public function sayHello()
    {
        return 'parentClass sayHell() printed';
    }
}

trait parentSecondClass
{
    public function sayGoodbye()
    {
        return 'parentClass sayGoodbye() printed';
    }
}

class People
{
    use parentClass;
    use parentSecondClass;
}

$o = new People();
echo $o->sayHello() . '<br/>';
echo $o->sayGoodbye();

这是特征的一般用途吗?

4

1 回答 1

4

通常,特征用于抽象功能,许多不属于同一类层次结构的类可能需要这些功能。您可以使用 trait 将此功能保留在单个位置,并将其应用于多个类。

这并没有消除抽象类的用处,但它确实可能消除了对静态实用程序类的需求,通常可以将这些类型的函数放入其中。

于 2013-07-29T00:30:11.987 回答