코딩동강

[PHP-생코] PHP 7강 - 접근제어자 = 속성의 가시성(property visibility) ※ 캡슐화(encapsulation)

963


접근 제어자 1 - 개념

 

접근제어자(access modifier) = 속성의 가시성(property visibility) 

캡슐화 달성 수단 중 하나.

 

캡슐화(encapsulation)

객체 사용자에게 필요한 정보/기능만 노출시켜서, 편의성 및 안정성 높이는 작업.

 

 

 

 

접근 제어자 2 (private vs public)


<?php

class MyFileObject{

  private $filename;

  function __construct($fname){

    $this->filename = $fname;

    if(!file_exists($this->filename)){

      die('There is no file '.$this->filename);

    }

  }

  function isFile(){

    return is_file($this->filename);

  }

}

$file = new MyFileObject('data.txt');

// $file = new MyFileObject();

// $file->filename = 'data.txt';

var_dump($file->isFile());

var_dump($file->filename);

?>

 

 

 

접근 제어자 3 - (private vs public)

 

<?php

class Person{

  private $name;

  function sayHi(){

    print("Hi, I'm {$this->name}.");

  }

  function setName($_name){

    if(empty($_name)){

      die('I need name');

    }

    $this->name = $_name;

  }

  function getName(){

    return $this->name;

  }

}

$egoing = new Person();

$egoing->setName('egoing');

$egoing->sayHi();

print($egoing->getName());

?>

 


접근 제어자 3 (method visibility)

 

<?php

class Person{

  private $name;

  public function sayHi(){

    print("Hi, I'm {$this->name}.");

  }

  public function setName($_name){

    $this->ifEmptyDie($_name);

    $this->name = $_name;

  }

  public function getName(){

    return $this->name;

  }

  private function ifEmptyDie($value){

    if(empty($value)){

      die('I need name');

    }

  }

}

$egoing = new Person();

$egoing->setName('egoing');

$egoing->sayHi();

print($egoing->getName());

?>

 

https://opentutorials.org/module/6/15730

 

PS.

 

Visibility 

https://www.php.net/manual/en/language.oop5.visibility.php

 

접근제어자

https://homzzang.com/b/php-1065

 

 


분류 제목
JS-생코 JS 76강 - 생성자와 new (1/3) : 소개
JS-생코 JS 75강 - 객체지향프로그래밍 (3/3) : 부품화
JS-생코 JS 74강 - 객체지향프로그래밍 (2/3) : 추상화
JS-생코 JS 73강 - 객체지향프로그래밍 (1/3) : 오리엔테이션
JS-생코 JS 72강 - 함수의 호출 (2/2) : apply의 사용
JS-생코 JS 71강 - 함수의 호출 (1/2) : apply 소개
JS-생코 JS 70강 - arguments (2/2) : function length
JS-생코 JS 69강 - arguments (1/2) : arguments란?
JS-생코 JS 68강 - 클로저 (closure) 4/4 : 클로저의 응용
JS-생코 JS 67강 - 클로저 (closure) 3/4 : private variable
JS-생코 JS 66강 - 클로저 (closure) 2/4 : 클로저란?
JS-생코 JS 65강 - 클로저 (closure) 1/4 : 외부함수와 내부함수
JS-생코 JS 64강 - 값으로서 함수와 콜백 (4/4) : 비동기 콜백
JS-생코 JS 63강 - 값으로서 함수와 콜백 (3/4) : 콜백
JS-생코 JS 62강 - 값으로서 함수와 콜백 (2/4) : 함수의 용도 2
31/47
목록
  • 채팅방
  • 필독
1. 채팅창 헤드에서 접속자 확인 2. 닉네임 클릭해 1:1 채팅 가능 3. 닉네임 클릭해 귓속말 가능 4. 닉네임 클릭해 호출하기 가능 5. 우하단 클릭해 환경 설정 가능 6. 의뢰글 작성 후 의뢰 상담 가능 7. 질문글 작성 후 질문 상담 가능 8. 채팅방에 개인정보 입력 금지 9. 채팅방에 광고 욕설 비방 금지
 홈  PC버전 로그인 일본어
웹디자인언어
서버관리언어
고급코딩언어
그누보드
제작의뢰
Q&A
커뮤니티
웹유틸
회원센터
홈짱 PC버전 로그인