国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿瓦提县| 宁都县| 固原市| 博客| 神农架林区| 霍山县| 新巴尔虎右旗| 济源市| 长治县| 沙坪坝区| 迁西县| 福清市| 邓州市| 泗水县| 宜都市| 进贤县| 东台市| 民勤县| 尉氏县| 漳平市| 北川| 广汉市| 丰原市| 遂川县| 贵德县| 昌平区| 青田县| 连平县| 宜宾市| 玛多县| 淳化县| 中西区| 叶城县| 洪雅县| 望江县| 抚宁县| 承德县| 太仆寺旗| 方城县| 濮阳市| 扎囊县|