首页 > 解决方案 > 如何创建一个仅用于字符串操作的类并在所有其他类中用于在其他类中重复的特定操作

问题描述

我有一堂课:

class Users { ... }

我希望在某些方法中将字符串操作为小写/大写/驼峰化/等,而不必重新编写在我拥有的所有其他类中执行此操作的方法。

所以我想创建一个“字符串”类(或接口?或静态类?)并重新使用其他类中的功能,例如class Apps { ... }仅用于计算或字符串操作。

我曾经新如何做到这一点,但就是不记得了。

标签: php

解决方案


您可能正在寻找 Traits ( http://php.net/manual/en/language.oop5.traits.php )

<?php

trait StringUtils
{
    protected function toLower($value)
    {
        return mb_strtolower($value);
    }

    protected function toUpper($value)
    {
        return mb_strtoupper($value);
    }
}

class User
{
    use StringUtils;

    private $name;

    public function __construct($name)
    {
        $this->name = $name;
    }

    public function displayName()
    {
        return $this->toLower($this->name);
    }
}

$me = new User('Rick');

echo $me->displayName(); // rick

推荐阅读