创建trait所需的任务是就是上面的“确定trait名称”“定义所需方法”。
我们来看一下trait的使用方法
trait的定义
trait 特征名{ function 方法名1() { function 方法名2() {}
trait的使用
class 类名 { // 这使得类与定义方法1和方法2的状态相同 use trait名;}
具体的示例
在下面的代码中,我们准备了这个book类和pen类,并且在这两个类中都有一个计算价格的过程,包括共同的税,所以我们用trait定义了这个过程。
我认为可以通过简单地编写“use TaxCalculator;”来说明可以使用含税计算功能。
如果在book类/ pen类中定义了此值,则要写入的代码量会增加,并且在进行更正时必须修改这两个类。
使用trait会减少代码量,即使发生修复,可维护性也很高,因为它只需要修复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; // 324echo $pen- taxIncluded().PHP_EOL; // 108
本篇文章到这里就全部结束了,更多精彩内容大家可以关注php 的相关教程栏目!!!
以上就是php中的trait怎么使用?(附示例)的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答