> 백엔드 개발 > PHP 문제 > PHP의 액세스 제어 문자는 무엇입니까?

PHP의 액세스 제어 문자는 무엇입니까?

青灯夜游
풀어 주다: 2023-03-11 15:40:02
원래의
2430명이 탐색했습니다.

PHP의 액세스 제어 기호는 다음과 같습니다. 1. 공개, 어디에서나 액세스할 수 있도록 속성 또는 메서드 설정 2. 자체 클래스 또는 개체에서만 액세스할 수 있도록 속성 또는 메서드 설정 3. 보호, 속성 만들기 또는 해당 클래스나 그 자손이 액세스할 수 있는 메서드입니다.

PHP의 액세스 제어 문자는 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

액세스 제어 수정자 목록

액세스 수정자 의미
공개 어디서나 액세스할 수 있도록 속성 또는 메서드 설정
Private 속성 또는 메서드를 자체 클래스 또는 개체에서만 액세스할 수 있도록 설정
Protected 속성 또는 메서드를 해당 클래스 또는 개체에서만 액세스할 수 있도록 설정 자체 클래스 또는 객체 클래스 또는 그 하위 항목 액세스

public

공용 속성 및 메서드는 어디에서나 액세스할 수 있습니다.

<?PHP
class Book {
        public $Name;
        public function say() {
                print "PHP!\n";
        }
}
class PythonBook extends Book {
        public function say() {
                print "Python!\n";
        }
}
$aBook = new PythonBook;
$aBook->Name = "Python";
print $aBook->Name;
?>
로그인 후 복사

기본적으로 모든 클래스 메소드는 공개됩니다.

위 코드는 다음과 같은 결과를 생성합니다.

PHP의 액세스 제어 문자는 무엇입니까?

private

개인 속성은 해당 클래스 내에서만 액세스할 수 있습니다.

<?PHP
class Book {
        private $Name;
        private $NameTag;
        public function setName($NewName) {
                // etc
        }
}
?>
로그인 후 복사

비공개 상위 메서드 및 속성은 하위 클래스에서 액세스할 수 없습니다. 이렇게 하려면 protected 키워드가 필요합니다.

Protected

Protected 속성과 메서드는 해당 클래스와 하위 클래스 내에서 액세스할 수 있습니다. 다음 코드를 고려해보세요.

<?PHP
class Book {
        public $Name;
        protected function getName() {
                return $this->Name;
        }
}
class Poodle extends Book {
        public function say() {
                print ""Book", says " . $this->getName();
        }
}
$aBook = new Poodle;
$aBook->Name = "PHP";
$aBook->say();
?>
로그인 후 복사

위 코드는 다음과 같은 결과를 생성합니다.

PHP의 액세스 제어 문자는 무엇입니까?

Example

아래 코드는 Private 멤버를 사용하여 정보를 숨기는 방법을 보여줍니다.

<?php
  class Widget
  {
    private $name;
    private $price;
    private $id;
    public function __construct($name, $price)
    {
      $this->name = $name;
      $this->price = floatval($price);
      $this->id = uniqid();
    }
    //checks if two widgets are the same
    public function equals($widget)
    {
      return(($this->name == $widget->name) AND
       ($this->price == $widget->price));
    }
  }
  $w1 = new Widget("Cog", 5.00);
  $w2 = new Widget("Cog", 5.00);
  $w3 = new Widget("Gear", 7.00);
  //TRUE
  if($w1->equals($w2))
  {
    print("w1 and w2 are the same<br>\n");
  }
  //FALSE
  if($w1->equals($w3))
  {
    print("w1 and w3 are the same<br>\n");
  }
  //FALSE, == includes id in comparison
  if($w1 == $w2)
  {
    print("w1 and w2 are the same<br>\n");
  }
?>
로그인 후 복사

위 코드는 다음과 같은 결과를 생성합니다.

PHP의 액세스 제어 문자는 무엇입니까?

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP의 액세스 제어 문자는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿