현재 위치: > 최신 기사 목록> IS_A () 및 get_class () 클래스 레벨을 결정하는 데 사용합니다

IS_A () 및 get_class () 클래스 레벨을 결정하는 데 사용합니다

M66 2025-05-29

PHP 객체 지향 프로그래밍에서 객체가 특정 클래스에 속하는지 여부를 결정하거나 객체의 클래스 수준 관계를 결정해야합니다. IS_A ()get_class () 는 매우 일반적으로 사용되는 두 가지 기능으로, 객체의 클래스 계층 관계를 효과적으로 판단 할 수 있습니다. 이 기사는이 두 기능의 사용법을 자세히 소개하고 함께 사용하는 방법을 설명하기 위해 예제를 사용합니다.


1. 기본 소개

is_a ()

IS_A () 함수는 객체가 클래스의 인스턴스인지 또는 객체의 클래스가 해당 클래스에서 상속되는지 여부를 확인하는 데 사용됩니다. 구문은 다음과 같습니다.

 bool is_a(object $object, string $class_name, bool $allow_string = false)
  • $ 객체 : 확인할 객체.

  • $ class_name : 대상 클래스 이름.

  • $ allow_string : true 인 경우 첫 번째 인수는 객체만이 아니라 클래스 이름 문자열이 될 수 있습니다.

is_a ()는 객체가 속한 클래스와 부모 클래스 체인을 확인합니다. 그들 중 하나가 만나면 사실이 되돌아 갈 것입니다.

get_class ()

get_class () 함수는 객체의 실제 클래스 이름을 반환합니다. 구문은 다음과 같습니다.

 string get_class(object $object)

객체의 현재 클래스 이름 만 반환하고 상위 클래스를 포함하지 않습니다.


2. 왜 결합하여 사용합니까?

IS_A () 만 사용하면 객체가 특정 클래스 또는 부모 클래스에 속하는지 여부를 결정할 수 있습니다. 그러나 때때로 우리는 판단해야합니다.

  • 개체가 특정 클래스인지 여부 (상속은 고려되지 않음)

  • 개체가 특정 클래스의 서브 클래스인지 또는이 클래스인지 여부

  • 상속 관계의 계층 적 차이를 결정하십시오

현재 get_class ()is_a () 의 조합은 다양한 판단 논리를 유연하게 구현할 수 있습니다.


3. 샘플 데모

다음 클래스 구조가 있다고 가정합니다.

 class Animal {}
class Dog extends Animal {}
class Poodle extends Dog {}

$poodle = new Poodle();

예 1 : 특정 클래스인지 하위 클래스인지 확인

 if (is_a($poodle, 'Dog')) {
    echo '이것은 a입니다Dog또는Dog서브 클래스 인스턴스';
}

산출:

 이것은 a입니다Dog또는Dog서브 클래스 인스턴스

예 2 : 지정된 특정 클래스인지 결정 (서브 클래스 제외)

 if (get_class($poodle) === 'Dog') {
    echo '이것은 a입니다Dog수업의 예';
} else {
    echo '아니요Dog클래스 인스턴스';
}

산출:

 아니요Dog클래스 인스턴스

예 3 : 공동 사용 판단

 if (is_a($poodle, 'Dog') && get_class($poodle) !== 'Dog') {
    echo '이것은Dog서브 클래스 인스턴스,但아니요Dog수업 자체';
}

산출:

 이것은Dog서브 클래스 인스턴스,但아니요Dog수업 자체

4. 실제 응용 프로그램과 결합

일부 비즈니스 논리에서는 다음과 같습니다.

  • 클래스 자체에 대한 논리를 실행하십시오

  • 서브 클래스에 대해 다른 논리를 실행하십시오

IS_A ()get_class () 의 공동 판단을 사용하여 정확하게 제어 할 수 있습니다.


5. 주목할만한 것들

  • IS_A () 는 세 번째 매개 변수를 지원하여 문자열 클래스 이름 판단을 허용합니다.

  • get_class ()는 객체 매개 변수 만 허용하며 문자열을 직접 통과 할 수 없습니다.

  • 클래스 이름은 사례에 민감하며 사례의 일관성에주의를 기울입니다.

  • PHP 5.3.0 이후 IS_A ()는 문자열을 첫 번째 매개 변수로 받아들이고 세 번째 매개 변수와 함께 사용될 수 있습니다.


6. 요약

IS_A ()get_class () 의 조합을 통해 PHP에서 클래스 계층 관계를 유연하고 정확하게 판단 할 수 있습니다.

  • IS_A ()는 특정 클래스 또는 하위 클래스에 속하는지 여부를 결정합니다.

  • get_class () 객체의 특정 클래스 이름을 결정합니다.

  • 공동 사용은 특정 범주를 상속 카테고리와 구별하여 다양한 비즈니스 요구를 충족시킬 수 있습니다.


7. 참조 링크