트레이트에 규칙 정하기

트레이트를 사용하는 클래스에 반드시 선언해야하는 메소드를 지정할 수 있습니다.
똑같아요 abstract 키워드를 사용합니다.

트레이트 메소드에 abstract 사용방법

trait 트레이트명{
    abstract 접근제한자 function 메소드명();
}

자 그럼 예제를 통해서 볼까요.

<?php
    trait apple
    {
        //반드시 likeApple() 메소드를 선언해야해요.
        abstract static function likeApple();

        public static function phone()
        {
            return 'iPhone';
        }
    }

    class disney
    {
        use apple;
    }

    $disney = new disney;
?>

결과

disney 클래스에서 likeApple메소드를 선언하지 않아서 오류가 발생합니다.
다음은 likeApple()메소드를 선언한 예제입니다.

<?php
    trait apple
    {
        //반드시 likeApple() 메소드를 선언해야해요.
        abstract static function likeApple();

        public static function phone()
        {
            return 'iPhone';
        }
    }

    class disney
    {
        use apple;

        public function likeApple()
        {
            return '디즈니와 애플은 서로 친해요.';
        }
    }

    $disney = new disney;
    echo $disney->likeApple();
?>

결과

이렇게 abstract를 사용해 트레이트에서 메소드 규칙을 만드는 방법에 대해 알아봤습니다. ^-^*