php中的特征 - 任何现实世界的例子

时间:2016-11-25 11:04:13

标签: php inheritance interface abstract-class traits

在php中,traits具有一些功能,如接口和抽象类,并且traits也便于继承。任何关于Trait,Interface,Abstract class和Interface的真实示例或讨论。

1 个答案:

答案 0 :(得分:5)

让我们分为两类:MailerWriter

Mailer通过邮件发送一些文本,Writer将文本写入文件。

现在想象你想要格式化两个类使用的输入文本。

这两个课程都会使用相同的逻辑。

  • 您可以创建一个界面,但您需要在两个类中复制逻辑。
  • 您可以创建父类并对其进行扩展,但PHP不允许继承多个类。如果您的MailerWriter类已扩展某些类,则会出现问题。

所以你使用特质

示例:

trait Formatter
{
    public function format($data)
    {
        // Do some stuff
        return $data;
    }
}

class Mailer
{
    use Formatter;

    public function send($data)
    {
        $data = $this->format($data);
        // Send your mail
    }
}

class Writer
{
    use Formatter;

    public function write($data)
    {
        $data = $this->format($data);
        // Write in file
    }
}

在PHP中,特征就像'迷你类'。