php trait 私有方法,php中的trait怎么使用?(附示例)

自PHP5.4.0 起,PHP实现了一种代码复用的方法,称为trait。为了实际使用trait,trait和class指定类名一样,首先需要指定trait名称,在定义的trait模块中,可以定义方法,下面我们就来看看本篇文章的详细内容。

43175623ed963099e89c1f54a9062959.png

创建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; // 324

echo $pen->taxIncluded().PHP_EOL; // 108

本篇文章到这里就全部结束了,更多精彩内容大家可以关注php中文网的相关教程栏目!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值