PHP

상속 - 접근제어자 protected

수업소개

변수에 대해서 상속 관계에 있는 메소드에서는 접근할 수 있지만, 인스턴스를 통해서는 직접적으로 접근하는 것을 막고 싶을 때 protected를 사용하면 됩니다. 

수업

코드 

<?php
class ParentClass{
  public $_public = '<h1>public</h1>';
  protected $_protected = '<h1>protected</h1>';
  private $_private = '<h1>private</h1>';
}
class ChildClass extends ParentClass{
  function callPublic(){
    echo $this->_public;
  }
  function callProtected(){
    echo $this->_protected;
  }
  function callPrivate(){
    echo $this->_private;
  }
}
$obj = new ChildClass();
echo $obj->_public;
//echo $obj->_protected;
echo $obj->_private;
$obj->callPublic();
$obj->callProtected();
$obj->callPrivate();
?>

 

댓글

댓글 본문
작성자
비밀번호
  1. fletbel
    보통 private변수에 붙이는데 public이나 protected에 붙이는건 예약어와 겹쳐서 사용이 안되거나 외부코드와 같아서 분리를 위해 쓰는 경우가 간혹 있지만 좋은 방법은 아니라고 생각합니다. 저는 클래스의 멤버변수가 private접근자인 경우에만 붙입니다. 표준명명법은 다음분이..
    대화보기
    • 하니송
      속성이나 메소드에 접근 할 때는 $를 빼는것이 원칙입니다.
      대화보기
      • 웅이
        echo $obj->_public;
        echo $obj->_private;
        이런것 처럼 class 내의 변수에 접근할때는 $를 빼는게 원칙인가요?
      • 레이
        감사합니다.!

        user가 로그인해서 보이는 dashboard data도 이 private기능을 사용해서 구현하는게 맞는지 궁금합니다.
        혹자 개발해보려고 하는데 검색키워드를 어떤걸로 구글링 해야하는지 잘 몰라서요..
      • mirong1
        좋은 강의를 만들기 위해 들어간 노력에 너무 감사드립니다. !!
      • under
        변수명에 언더바를 사용하는 이유가 있을까요?
      • dufuqsls
        잘봣습니다@@
      • Frank
        고맙습니다~
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기