找一大圈原因, 最后終於找到了, 不是PHP版本的原因[], 是自己把use 寫到了類里的方法里了.
這個東東, 不能脫離類單獨使用, 否則的話, 會被認為是命名空間了.
測試例子如下
// Trait.php trait CustomerFunctionsTrait { public function plus ( $a = 1, $b = 1 ) { echo $a + $b; } public function minus ( $a = 5, $b = 1 ) { echo $a - $b; } } // Test.php include './Trait.php'; class MyTest { use CustomerFunctionsTrait; public function plus () { // use CustomerFunctionsTrait; //這是我錯的地方, 把use 寫到方法體里了 - -!! echo 'str'; } } $n = new MyTest; $n->minus();