PHP之認識 二 關於Traits的用法詳解

2022-09-26 05:42:11 字數 1045 閱讀 9473

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 字...