>백엔드 개발 >PHP 튜토리얼 >PHP 권한 제어 수정자 요약: 다양한 권한 수정자의 사용 및 차이점 개요

PHP 권한 제어 수정자 요약: 다양한 권한 수정자의 사용 및 차이점 개요

WBOY
WBOY원래의
2024-01-19 10:28:051318검색

PHP 권한 제어 수정자 요약: 다양한 권한 수정자의 사용 및 차이점 개요

웹 개발에 일반적으로 사용되는 프로그래밍 언어인 PHP에는 권한 관리에 대한 엄격한 요구 사항도 있습니다. 프로그램의 보안을 보장하기 위해 개발자는 권한 제어 수정자를 통해 프로그램의 다양한 부분에 대한 권한을 제어해야 합니다. 이 기사에서는 PHP의 권한 제어 수정자를 자세히 소개하고 독자가 해당 기능과 차이점을 더 잘 이해할 수 있도록 돕고 해당 코드 예제를 제공합니다.

  1. public 수정자

공개 수정자는 PHP에서 가장 일반적으로 사용되는 권한 제어 수정자로, 공개 멤버 변수와 멤버 메서드를 설명하는 데 사용됩니다. 멤버 변수나 메서드를 public으로 정의하면 모든 개체가 변수나 메서드에 액세스할 수 있습니다.

예를 들어 다음 코드 예제에서는 Person이라는 클래스를 정의하고 그 안에 공개 멤버 변수 $name과 공개 멤버 메서드 sayHello()를 정의합니다. 클래스 내부 또는 외부에서 이러한 멤버에 액세스하든 제한이 필요하지 않습니다.

class Person {
    public $name;
    
    public function sayHello() {
        echo 'Hello, my name is '.$this->name;
    }
}

$person = new Person();
$person->name = 'Tom';
$person->sayHello();
  1. protected 한정자

protected 한정자는 protected 멤버 변수 및 멤버 메서드를 설명하는 데 사용됩니다. 멤버 변수나 메서드를 보호됨으로 정의한다는 것은 하위 클래스와 상위 클래스만 이러한 멤버에 액세스할 수 있음을 의미합니다.

예를 들어 다음 코드 예제에서는 Animal이라는 클래스를 정의하고 그 안에 보호된 멤버 변수 $name과 보호된 멤버 메서드 getName()을 정의합니다. Animal 클래스의 하위 클래스와 상위 클래스만 이러한 멤버에 액세스할 수 있습니다.

class Animal {
    protected $name;
    
    protected function getName() {
        return $this->name;
    }
}

class Cat extends Animal {
    public function setName($name) {
        $this->name = $name;
    }
    
    public function sayHello() {
        echo 'Hello, I am '.$this->getName();
    }
}

$cat = new Cat();
$cat->setName('Tom');
$cat->sayHello();
  1. private modifier

private modifier는 private 멤버 변수와 멤버 메서드를 설명하는 데 사용됩니다. 멤버 변수나 메서드를 비공개로 정의하면 클래스 내의 멤버만 이러한 멤버에 액세스할 수 있습니다.

예를 들어 다음 코드 예제에서는 Person이라는 클래스를 정의하고 그 안에 전용 멤버 변수 $name과 전용 멤버 메서드 getName()을 정의합니다. 이러한 멤버는 클래스 외부에서 직접 액세스할 수 없습니다.

class Person {
    private $name;
    
    private function getName() {
        return $this->name;
    }
    
    public function sayHello() {
        echo 'Hello, my name is '.$this->getName();
    }
}

$person = new Person();
$person->name = 'Tom';  // 这里会报错
$person->sayHello();
  1. final 수정자

final 수정자는 클래스 및 메소드의 재정의를 제한하는 데 사용됩니다. 클래스나 메서드를 final로 정의한다는 것은 하위 클래스에서 재정의할 수 없다는 의미입니다.

예를 들어 다음 코드 예제에서는 Animal이라는 클래스를 정의하고 그 안에 최종 메서드 eat()를 정의합니다. 메서드는 final로 정의되므로 Animal의 하위 클래스에서 재정의할 수 없습니다.

class Animal {
    final public function eat() {
        echo 'I am eating';
    }
}

class Cat extends Animal {
    public function eat() {  // 这里会报错
        echo 'I am not eating';
    }
}

$cat = new Cat();
$cat->eat();
  1. abstract modifier

abstract modifier는 추상 클래스와 추상 메서드를 정의하는 데 사용됩니다. 추상 클래스는 인스턴스화할 수 없으며 다른 클래스에서만 상속할 수 있습니다. 추상 메서드에는 정의만 있고 구체적인 구현은 없으며 하위 클래스에서 재정의되어야 합니다.

예를 들어 다음 코드 예제에서는 Animal이라는 추상 클래스를 정의하고 그 안에 추상 메서드 eat()를 정의합니다. eat() 메서드는 추상적이므로 이 메서드는 Animal 하위 클래스 Cat에서 구현되어야 합니다.

abstract class Animal {
    abstract public function eat();
}

class Cat extends Animal {
    public function eat() {
        echo 'I am eating fish';
    }
}

$cat = new Cat();
$cat->eat();

위의 소개를 통해 PHP의 다양한 권한 제어 수정자의 용도와 차이점을 명확하게 이해할 수 있습니다. 프로젝트를 개발할 때 특정 요구 사항에 따라 적절한 권한 제어 방법을 선택하고 관련 규정을 엄격히 준수하여 프로그램 운영의 안전과 안정성을 보장해야 합니다.

위 내용은 PHP 권한 제어 수정자 요약: 다양한 권한 수정자의 사용 및 차이점 개요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.