PHPでコードを再利用するときに便利なtrait

PHPでコードを再利用したい時は継承を使うのが一般的ですが、traitを使うと継承の複雑さをなくすことができます。

以下の例では、sayHello や sayGoodbye といった共通の処理を Hoge というtraitで定義し、それをUserクラスで呼び出しています。

<?php
trait Hoge {
    function sayHello(){
        print_r('Hello');
    }
    function sayGoodbye(){
        print_r('Good Bye');
    }
}

class User {
    use Hoge;
    
    public static function say(){
        $this->sayHello();
    }
}

$user = new User;
$user->sayHello(); // Hello
$user->sayGoodbye(); //Good Bye
?>

PHP

Posted by たみぼうず