여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. PHP - 기초 - OOP 액세스 수정자
PHP – 기초 – OOP 액세스 수정자
2년전 작성
9개월전 수정

액세스 수정자

속성 및 메서드에는 액세스할 수 있는 위치를 제어하는 ​​액세스 한정자가 있을 수 있다.

PHP OOP 에는 세 가지 액세스 수정자가 있다.

  • public- 속성 또는 메서드는 어디에서나 액세스할 수 있다. 기본값.
  • protected- 속성 또는 메서드는 클래스 내에서 그리고 해당 클래스에서 파생된 클래스에서 액세스할 수 있다.
  • private- 속성 또는 메서드는 클래스 내에서만 액세스할 수 있다.

예제

예제를 확인하며 공부해보자.

첫번째 예제

세 가지 속성(이름, 색상 및 무게)에 세 가지 다른 액세스 수정자를 추가해보자.
여기에서 name 속성을 설정하려고 하면 제대로 작동한다.
왜냐하면, name 속성은 Public이고 어디에서나 액세스할 수 있기 때문이다.

그러나 color 또는 weight 속성을 설정하려고 하면 치명적인 오류가 발생한다.
왜냐하면, color 및 weight 속성은 보호되고 비공개이기 때문이다.

PHP
<?php
class Fruit {
public $name;
protected $color;
private $weight;
}

$mango = new Fruit();
$mango->name = 'Mango';
$mango->color = 'Yellow';
$mango->weight = '300';
?>
두번째 예시

두 함수에 액세스 수정자를 추가해보자.

여기에서 set_color() 또는 set_weight() 함수를 호출하려고 하면 모든 속성이 공용인 경우에도 치명적인 오류가 발생한다.
왜냐하면, 두 함수는 보호되고 비공개로 간주되기 때문이다.

PHP
<?php
class Fruit {
public $name;
public $color;
public $weight;

function set_name($n) {
$this->name = $n;
}
protected function set_color($n) {
$this->color = $n;
}
private function set_weight($n) {
$this->weight = $n;
}
}

$mango = new Fruit();
$mango->set_name('Mango'); // OK
$mango->set_color('Yellow'); // ERROR
$mango->set_weight('300'); // ERROR
?>
참고

Mingg`s Diary
밍구
공부 목적 블로그