ch09 / exam09-07.php

메소드 접근 제어자 (myPublic, myProtected, myPrivate) 시각화

외부에서는 public 메소드만 호출 가능, protected/private는 내부 foo()를 통해서만 간접 호출

PHP Source (ch09/exam09-07.php)
단계: 0 / 0
1<?php
3class MyClass {
5public function __construct() { echo "1<br>"; }
6public function myPublic() { echo "2<br>"; }
7protected function myProtected() { echo "3<br>"; }
8private function myPrivate() { echo "4<br>"; }
11function foo() { // 기본 public
13$this->myPublic(); $this->myProtected(); $this->myPrivate();
16}
17}
19$myclass = new MyClass; // 1 출력 (생성자)
20$myclass->myPublic(); // 2 출력
23$myclass->foo(); // 2, 3, 4 출력
24?>
준비 완료 실행 버튼 또는 다음 단계를 눌러주세요.
메소드 호출 경로 추적
외부 $myclass->myPublic() → 직접 호출 가능
외부 $myclass->myProtected() → 치명적 오류(Fatal Error)
외부 $myclass->myPrivate() → 치명적 오류(Fatal Error)
내부 foo() 경유 → $this를 통해 2, 3, 4 모두 호출
http://localhost/ch09/exam09-07.php

메소드의 접근 제어자