舉例如下
<?php
trait HelloWorld {
public function sayHello() {
echo 'Hello World!';
}
}
class Demo1 {
use HelloWorld {
sayHello as protected;
}
}
$d1 = new Demo1();
echo $d1->sayHello();
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:class12.php
功能:示範 PHP 程式
作者:張凱慶
時間:西元 2013 年 2 月 */
?>use 後利用大括弧,然後利用關鍵字 as 更改權限
use HelloWorld {
sayHello as protected;
}由於 sayHello 被改成 protected ,因此執行會發生錯誤訊息

另外可在權限關鍵字之後加上別名,例如
<?php
trait HelloWorld {
public function sayHello() {
echo 'Hello World!';
}
}
class Demo2 {
use HelloWorld {
sayHello as private myPrivateHello;
}
}
$d2 = new Demo2();
echo $d2->sayHello();
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:class13.php
功能:示範 PHP 程式
作者:張凱慶
時間:西元 2013 年 2 月 */
?>此例執行結果如下

此例 myPrivateHello() 為 private 的方法,而 sayHello() 的權限不變,仍是 public 的方法。
| 中英文術語對照 | |
|---|---|
| 特徵機制 | trait |
| 類別 | class |
| 方法 | method |
| 別名 | alias |
您可以繼續參考
類別與物件
相關目錄
回 PHP 快速導覽
回 PHP 教材
回首頁
參考資料
http://www.php.net/manual/en/language.oop5.traits.php
沒有留言:
張貼留言