php是單繼承的語言,在php 5.4 traits出現之前,php的類無法同時從兩個基類繼承屬性或方法。traits的出現解決了這一問題。
1、通過在類中使用use關鍵字宣告要組合的trait名稱,而具體某個trait的宣告使用trait關鍵詞,trait不能直接例項化。具體用法:
<?php trait person
"; }
}class teacher
}class student teacher
}$student = new student();
$student->talk();
$student->speak();
$student->study();
?>
2、trait、父類和本類中都存在某個同名的屬性或者方法是,會保留哪乙個?
<?php trait person
"; }
public function hello()
}class teacher
public function hello()
}class student extends teacher
}$student = new student();
$student->talk();
$student->hello();
結果輸出
我需要學習
hello person
由結果可知
//trait的方法覆蓋了基類person中的方法,所以person中的方法hello和speak被覆蓋程式設計客棧
//當方法或屬性同名時,當前類中的方法會覆蓋 trait的方法,所以此處talk會覆蓋trait中的talk
3、如果多個trait中包含同名方法或kegkwshn者屬性時,會怎樣呢?答案是當組合的多個trait包含同名屬性或者方法時,需要明確宣告解決衝突,否則會產生乙個致命錯誤。使用insteadof和as操作符來解決衝突,insteadof是使用某個方法替代另乙個,而as是給方法取乙個別名
本文標題: php之認識(二)關於traits的用法詳解
本文位址:
Pytorch學習記錄(二) 關於Gradient
在bp的時候,pytorch是將variable的梯度放在variable物件中的,我們隨時都可以使用variable.grad得到對應variable的grad。剛建立variable的時候,它的grad屬性是初始化為0.0的。import torch from torch.autograd im...
GIT 學習筆記(二) 關於修改
git checkout file可以丟棄工作區的修改 git reset head可以把暫存區修改撤銷掉 unstage 重新放回工作區 運用版本回退的方法 git log可以檢視提交歷史,以便確定要回退到哪個版本,再使用git reset hard commit id回退到想要的版本 用rm命令...
PHP之認識PHP 一
1.1php乙個最簡單的例子 echo my first php script 1.2php的使用 1.3注釋 這是 php 單行注釋 這是 php 多行 注釋 1.4變數 php 變數規則 1.5echo與print echo print 和 print r的區別 1.6資料型別 string 字...