ホームページ  >  記事  >  バックエンド開発  >  PHPでトレイトを使用するにはどうすればよいですか? (例付き)

PHPでトレイトを使用するにはどうすればよいですか? (例付き)

不言
不言オリジナル
2018-12-26 13:17:053444ブラウズ

PHP5.4.0 以降、PHP は trait と呼ばれるコード再利用メソッドを実装しました。実際にトレイトを使用するには、トレイトはクラス名と同じです。最初にトレイト名を指定する必要があります。定義されたトレイトモジュールには、メソッドを定義できます。この記事の詳細を見てみましょう。

PHPでトレイトを使用するにはどうすればよいですか? (例付き)

トレイトの作成に必要な作業は、上記の「トレイト名の決定」と「必要なメソッドの定義」です。

traitの使い方を見てみましょうtrait

traitの定義

trait  特征名{
    function 方法名1() {
   }

    function 方法名2() {
    }
}

traitの使い方

class 类名 {
    // 这使得类与定义方法1和方法2的状态相同
    use trait名;
}

具体的な例

次のコードでは、book クラスとpen クラスを用意し、両方のクラスで計算が行われます。価格プロセスには次のものが含まれます。共通の税金なので、このプロセスを特性で定義します。

「use TaxCalculator;」と書くだけで税込計算機能が利用できることを示すことができると思います。

この値をbookクラス/penクラスに定義した場合、記述するコード量が増加し、修正時に両方のクラスの修正が必要になります。

トレイトを利用するとコード量が減り、修正が発生してもTaxCalculatorの修正だけで済むためメンテナンス性が高いです。

// 税的计算处理
trait TaxCalculator {
    private $price;         // 价格
    private $tax = 0.08;    // 税收
    // 返还含税的价格
    public function taxIncluded() {
        return $this->price * (1 + $this->tax);
    }
}
// 表示book类的信息
class Book {
    use TaxCalculator;
    public $title;      // 标题
    public $author;     // 作者
    public function __construct($price, $title, $author) {
        $this->price = $price;
        $this->title = $title;
        $this->author = $author;
    }
}
// 表示pen类的信息
class Pen {
    use TaxCalculator;
    public $color;  // 颜色
    public $type;   // 自动笔或者铅笔

    public function __construct($price, $color, $type) {
        $this->price = $price;
        $this->color = $color;
        $this->type = $type;
    }
}
// 把书和笔实例化
$book = new Book(80, ""红楼梦"", ""曹雪芹"");
$pen = new Pen(10, ""black"", ""sharp"");

// 输出含税的价格
echo $book->taxIncluded().PHP_EOL;  // 324
echo $pen->taxIncluded().PHP_EOL;   // 108

この記事はここで終了です。さらにエキサイティングなコンテンツについては、PHPでトレイトを使用するにはどうすればよいですか? (例付き) 中国語 Web サイトの関連するチュートリアルの列に注目してください。 ! !

以上がPHPでトレイトを使用するにはどうすればよいですか? (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。