happy cat image

everdevel

Web Technology, 에버디벨

EEOS

에버디벨 책을 학습할 수 있는 클라우드 개발 환경을 제공합니다.
개발환경구축없이 태블릿에서도 개발할 수 있는 책의 예제와 프로젝트
오직 당신을 위한 스토리지, URL, DB, 무제한 트래픽
그리고 웹기반 개발환경을 제공합니다.

더 알아보기
에버디벨이 만든 무료 클라우드 개발환경을 소개합니다.

트레이트의 메소드 대신 사용할 명칭 정하기

2개의 트레이트를 사용하는데 2개의 트레이트에 동일한 이름의 메소드가 있다고 할 때 둘 중 어떠한 것을 사용할 지정할 수 있어요.
어떤 메소드를 사용할지 지정하는 키워드 insteadof입니다.

insteadof 사용 방법

trait 트레이트명{}
class 클래스명
{
    use 트레이트명, 트레이트명 {
        사용할 트레이트명::메소드명 insteadof 안사용할 트레이트명;
    }
}

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

<?php
    trait apple
    {
        public function phone()
        {
            return 'iPhone';
        }
    }

    trait samsung
    {
        public function phone()
        {
            return 'galaxy';
        }
    }

    class disneyAnimation
    {
        use apple, samsung {
            apple::phone insteadof samsung;
        }
    }

    $disney = new disneyAnimation;
    echo "주토피아의 주디는 ".$disney->phone()."를 사용합니다.";
?>

(로그인을 하시면 위의 코드를 실행 할 수 있습니다.
oAuth인증 방식으로 빠르고 간편하게 로그인할 수 있습니다.
네이버, 구글, 카카오, 라인의 ID로 순식간에 로그인 하세요.)

trait가 3개일 때는 instead of 뒤에 , 를 찍고 사용하지 않을 트레이트명을 적어줍니다.

insteadof 다중 사용 방법

trait 트레이트명{}
class 클래스명
{
    use 트레이트명, 트레이트명 {
        사용할 트레이트명::메소드명 insteadof 안사용할 트레이트명, 안사용할 트레이트명;
    }
}

다음의 예제로 다중으로 insteadof를 체험해볼까요

<?php
    trait apple
    {
        public function phone()
        {
            return 'iPhone';
        }
    }

    trait samsung
    {
        public function phone()
        {
            return 'galaxy';
        }
    }

    trait lg
    {
        public function phone()
        {
            return 'g';
        }
    }

    class disneyAnimation
    {
        use apple, samsung, lg {
            apple::phone insteadof samsung, lg;
        }
    }

    $disney = new disneyAnimation;
    echo "주토피아의 주디는 ".$disney->phone()."를 사용합니다.";
?>

(로그인을 하시면 위의 코드를 실행 할 수 있습니다.
oAuth인증 방식으로 빠르고 간편하게 로그인할 수 있습니다.
네이버, 구글, 카카오, 라인의 ID로 순식간에 로그인 하세요.)

만약에 다른 트레이트에 있는 phone()메소드도 사용해야 한다면 어떻게 해야 할까요? 다음시간에는 다른 트레이트에 있는 같은 이름의 메소드를 사용하는 방법에 대해 알아볼게요.


    
    

강좌로 돌아가기

댓글 0개

정렬기준