舉例如下
<?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
沒有留言:
張貼留言