前言
開發 Laravel 的應用時常常會看到 trait 的用法,透過 trait 可以有效的讓 method 重複使用。
但仍然會遇到需要稍微修改原本實作的 method,以下記錄下在 PHP 中,如何有效的 override 原本的 method 。
範例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <?php trait A { public function smallTalk() { echo 'a'; } public function bigTalk() { echo 'A'; } }
trait B { public function smallTalk() { echo 'b'; } public function bigTalk() { echo 'B'; } }
class Talker { use A, B { B::smallTalk insteadof A; A::bigTalk insteadof B; } }
$talker = new Talker(); $talker->smallTalk(); $talker->bigTalk();
|
Reference