国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php中Trait的使用說明

2020-03-22 19:15:03
字體:
來源:轉載
供稿:網友
* Trait是什么?

* 1.trait是為單繼承語言量身定制的代碼復用機制;

* 2.之前可以通過函數或類來實現代碼復用;

* 3.trait可以簡單的理解為一個類方法的集合,工作在父類與子類之間;

* 4.但是trait不僅僅局限于方法集合,還支持抽象,靜態與屬性;

* 5.當前類成員會覆蓋trait類成員,而trait中的成員,又可以覆蓋同名類成員

* 6.重要提示:trait不是類,不能實例化,切記切記

//聲明父類: Person

if (!html' target='_blank'>class_exists( Person )) { class Person protected $name; public function __construct($name= 小明 ) $this- name = $name; public function study($course= php ) return $this- name. 在學習 .$course;
//trait中同樣支持抽象,以及靜態方法,我放在一起寫了 //我把這個方法聲明為抽象的同時,也聲明為靜態 abstract public static function hobby($name);
//在trait中也聲明一個與父類同名的study()方法,參數修改一下以示區別 public function study($course= java ) return $this- name. 在學習 .$course;}


//聲明trait類:Recreation 娛樂

if(!trait_exists( Recreation )){ trait Recreation //這個trait類中也聲明一個與Course中同名的方法sport //注意: 屬性$friend不允許與Course::sport()同名 //因為目前trait中還沒有處理同名屬性的機制,期待新版本會解決 //這里我們將$friend 修改為 $friend1 public $friend1= 小軍  public function sport($name= 打藍球 )// return $this- name. 在學習 .$name; //trait中可以訪問父類中的屬性 return $this- name. 和 .$this- friend1. 在學習 .$name;
}

聲明子類: Student ,繼承自 父類: Person

class Student extends Person //導入trait類// use Course; //子類支持導入多個trait類,但不可避免的會遇到方法重名問題,怎么解決呢?// use Course, Recreation; //同時引入二個trait類 //如果這二個trait類中有重名方法,要用以下語句結構解決 use Course, Recreation { //訪問sport()方法沖突時,使用Course::sport()代替掉Recoreation::sport() Course::sport insteadof Recreation; //再訪問Recoreation::sport()時啟用別名 mySport() Recreation::sport as mySport; //子類中必須實現trait中聲明的抽象方法hobby() public static function hobby($name) return $name; //在子類中再聲明一個與trait類同名的study()方法,參數修改一下以示區別 public function study($course= python ) return $this- name. 在學習 .$course;}


//實例化Student類

$student = new Student();

//1.訪問父類Person中的方法

echo $student- study();echo hr 

//2.訪問trait類中的方法

echo $student- sport();echo hr 

//3調用trait中的抽象靜態方法,必須要用Student來訪問

echo Student::hobby( 抽煙喝酒燙頭 echo hr 

//4.當trait中存在與父類同名方法時,trait優先級要高

echo $student- study();

//5.當子類中存在與trait類同名方法時,子類優先級要高

echo $student- study();echo hr 

//6.子類可以從多個trait中獲取方法集

echo $student- sport();echo hr echo $student- mySport();

以上就是php中Trait的使用說明的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浦江县| 玉龙| 巨野县| 定兴县| 肃南| 乐都县| 赤峰市| 新宾| 姚安县| 当阳市| 大新县| 莱芜市| 凤山市| 西平县| 怀远县| 安泽县| 黄冈市| 高邑县| 区。| 东明县| 邵阳县| 勐海县| 新巴尔虎左旗| 繁昌县| 乌拉特前旗| 伊宁县| 黄陵县| 江达县| 京山县| 肇源县| 礼泉县| 临朐县| 长垣县| 通渭县| 汶上县| 信宜市| 陆丰市| 华蓥市| 揭阳市| 马鞍山市| 广水市|