函式名稱:class_uses()
適用版本:PHP 5 >= 5.4.0, PHP 7
函式描述:class_uses() 函式返回一個陣列,包含一個類使用的所有 trait。
用法示例:
trait TraitA {
public function methodA() {
echo "TraitA's methodA";
}
}
trait TraitB {
public function methodB() {
echo "TraitB's methodB";
}
}
class MyClass {
use TraitA, TraitB;
}
$traits = class_uses('MyClass');
print_r($traits);
輸出:
Array
(
[TraitA] => TraitA
[TraitB] => TraitB
)
解釋:在上面的示例中,我們定義了兩個 traits(TraitA 和 TraitB)並將它們應用到了 MyClass 類中。然後,透過呼叫 class_uses() 函式並將 MyClass 類名作為引數,我們得到了一個包含所使用的所有 trait 的陣列。該陣列的鍵是 trait 的名稱,值是 trait 的完全限定名稱。在本例中,陣列中的鍵值對為 [TraitA] => TraitA 和 [TraitB] => TraitB。這意味著 MyClass 類使用了 TraitA 和 TraitB。
注意事項:
- class_uses() 函式只能用於類,無法用於介面或 traits。
- 如果類沒有使用任何 trait,則 class_uses() 函式將返回一個空陣列。
- class_uses() 函式不會遞迴地返回 trait 的父 trait,只會返回直接使用的 trait。
- 該函式返回的陣列中,trait 的順序與其在類中使用的順序相同。