접근제한자 테스트

앞에서 학습한 접근제한자에 대해서 테스트 해봅시다.

protected 테스트

protected는 선언한 클래스에서도 사용할 수 있으며, 상속된 자식 클래스에서도 사용할 수 있습니다.

<?php
    class bumo
    {
        protected $bumo = '부모의 차';
    }

    class jasik extends bumo
    {
        public function rentCar()
        {
            return $this->bumo.'를 빌려 탑니다.';
        }
    }

    $test = new jasik;
    echo $test->rentCar();
?>

위 코드의 결과

위 코드는 부모 클래스에서 protected로 프로퍼티를 선언했습니다. 그래서 자식 클래스에서도 해당 프로퍼티를 사용할 수 있었습니다.
이번엔 같은 코드에 protected를 private로 변경해서 해볼게요.
그럼 당연히 부모클래스에서만 사용할 수 있는 프로퍼티 이므로 자식 클래스에서는 사용할 수 없습니다.

<?php
    class bumo
    {
        private $bumo = '부모의 차';
    }

    class jasik extends bumo
    {
        public function rentCar()
        {
            if(isset($this->bumo)){
                return $this->bumo.'를 빌려 탑니다.';
            } else {
                return '차를 빌려 탈 수 없습니다.';
            }

        }
    }

    $test = new jasik;
    echo $test->rentCar();
?>

위 코드의 결과

isset함수는 해당 변수수의 존재 유무를 판단해 존재하면 true, 없으면 false를 반환합니다.