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

Traits in php- Any real world example

在 php 中,traits 具有一些特性,如接口和抽象 class 并且 traits 在 inheritance.Any 现实世界的例子或与 Trait、Interface、Abstract 相关的讨论中也很方便 class 和界面。

假设有 2 个 classes : MailerWriter.

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

现在假设您想要格式化两个 classes 使用的输入文本。

这两个class你会使用相同的逻辑。

  • 您可以创建一个界面,但您需要在两个 class 中复制逻辑。
  • 您可以创建一个父 class 并扩展它,但是 PHP 不允许继承多个 class。如果您的 MailerWriter classes 已经扩展了一些 classes.
  • ,这将成为一个问题

所以你使用了特质

示例:

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中,特质如'mini-classes'。