트레이트에 규칙 정하기
트레이트를 사용하는 클래스에 반드시 선언해야하는 메소드를 지정할 수 있습니다.
똑같아요 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를 사용해 트레이트에서 메소드 규칙을 만드는 방법에 대해 알아봤습니다. ^-^*