首頁 >後端開發 >php教程 >php中的trait怎麼使用? (附範例)

php中的trait怎麼使用? (附範例)

不言
不言原創
2018-12-26 13:17:053470瀏覽

自PHP5.4.0 起,PHP實作了一種程式碼重複使用的方法,稱為trait。為了實際使用trait,trait和class指定類別名稱一樣,首先需要指定trait名稱,在定義的trait模組中,可以定義方法,下面我們就來看看本篇文章的詳細內容。

php中的trait怎麼使用? (附範例)

建立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中的trait怎麼使用? (附範例)中文網的相關教學欄位! ! !

以上是php中的trait怎麼使用? (附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn