not bad 한 개발

PHP - 접근 제어자 본문

PHP/PHP class

PHP - 접근 제어자

leebean 2022. 4. 1. 17:49

(W3School의 PHP 튜토리얼을 사용했습니다.)

https://www.w3schools.com/php/php_oop_access_modifiers.asp

 

PHP OOP Access Modifiers

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

 접근제어자 

접근 제어자는 객체지향 프로그래밍 언어에 클래스와 함께 반드시 존재합니다, 그리고 기능 또한 비슷합니다.

  • public : 프로퍼티 또는 메서드를 만들면 기본으로 붙는 속성이며 어디에서나 접근이 가능합니다.
  • protected : protected로 프로퍼티, 메서드를 만들면 해당 클래스와 상속된 클래스에서만 접근이 가능합니다.
  • private : private로 프로퍼티, 메서드를 만들면 해당 클래스에서만 사용이 가능합니다.
  외부 상속받은 클래스
public 접근가능 접근가능
protected 접근 불가능 접근가능
private 접근 불가능 접근 불가능

 

(접근제어자 예시 코드)

<!DOCTYPE html>
<html>
	<body>
		<?php
			class pub_class {
				public $pub_num; // public property
				protected $pro_num; // protected property
				private $pri_num; // private property

				function set_info($num){
					$this->$pri_num = $num;
					// 입력된 $num의 값을 $pri_num 저장
				}
				protected function get_str(){
					return $this->$pro_num;
				}
				function get_num(){
					return $this->$pri_num;
				}
			}
			class pro_class extends pub_class {
				function ex_info($num){
					$this->$pro_num = $num;
				}
				function pro_echo(){
					echo "protected property = ".$this->$pro_num."<br>";
					echo "protected method = ".$this->get_str()."<br>";
				}
			}
			$object_pub = new pub_class(); // $object_pub이름의 객체 생성
			$object_pro = new pro_class(); // $object_pro이름의 객체 생성
			$object_pro->ex_info(10); // pub_class의 pro_num에 10 저장
			$object_pro->pro_echo(); // pro_num, get_num으로 pro_num 출력

			$object_pub->set_info(20); // pub_class의 pri_num에 20을 저장
			echo "pub_class의 pri_num = ".$object_pub->get_num();
		?>
	</body>
</html>

'PHP > PHP class' 카테고리의 다른 글

PHP - 소멸자(destruct )  (0) 2022.05.05
PHP - 생성자(construct)  (0) 2022.04.30
PHP - 클래스와 객체 사용하기  (0) 2022.03.31
PHP- 개발환경 설정하기(Bitnami)  (0) 2022.03.18
PHP - 테스트 환경 구축하기(Bitnami)  (0) 2022.03.18
Comments