현재 위치: > 최신 기사 목록> IS_A () 함수의 매개 변수 분석 : 클래스 이름과 개체를 전달하는 방법

IS_A () 함수의 매개 변수 분석 : 클래스 이름과 개체를 전달하는 방법

M66 2025-05-31

PHP에서 IS_A () 함수는 종종 개체가 특정 클래스에 속하는지 또는 특정 클래스에서 상속되는지 여부를 결정하는 데 사용됩니다. 사용하기가 간단 해 보이지만 매개 변수, 특히 클래스 이름과 객체를 통과 할 때 혼동하기 쉽습니다. 이 기사는 클래스 이름과 객체 매개 변수를 전달하는 방법을 이해하는 데 도움이되는 IS_A () 의 올바른 사용법을 자세히 설명합니다.


1. IS_A () 함수 소개

IS_A () 함수의 함수는 변수가 지정된 클래스의 인스턴스인지 또는 클래스의 서브 클래스 인스턴스인지 여부를 감지하는 것입니다. 기능 프로토 타입은 다음과 같습니다.

 bool is_a(object|string $object_or_class, string $class_name, bool $allow_string = false)

매개 변수 설명 :

  • $ object_or_class : 객체 인스턴스 또는 클래스 이름 문자열을 전달할 수 있습니다 ( $ allow_stringtrue 인 경우).

  • $ class_name : 문자열 형식의 대상 클래스의 이름입니다.

  • $ allow_string : 기본값은 False 이며 첫 번째 매개 변수 만 객체가 될 수 있음을 나타냅니다. true 로 설정되면 첫 번째 매개 변수는 클래스 이름 문자열 일 수도 있습니다.

함수는 true 또는 false를 반환합니다.


2. 일반적인 사용 예

1. 개체가 지정된 클래스인지 하위 클래스인지 확인

 class Animal {}
class Dog extends Animal {}

$dog = new Dog();

if (is_a($dog, 'Animal')) {
    echo "예 Animal 클래스 또는 하위 클래스 인스턴스";
} else {
    echo "不예 Animal 수업의 예";
}

산출:

 예 Animal 클래스 또는 하위 클래스 인스턴스

$ dog 클래스의 사례이고 개는 동물 의 서브 클래스이기 때문에 사실이되기 때문에 반환됩니다.


2. 첫 번째 매개 변수는 객체이고 두 번째 매개 변수는 클래스 이름 문자열입니다.

이것은 가장 일반적인 사용법이며 객체 변수와 클래스 이름 문자열을 직접 전달하십시오.

 is_a($obj, 'SomeClass');

3. 첫 번째 매개 변수는 클래스 이름 문자열이며 $ allow_string을 활성화해야합니다.

PHP 5.3.0을 사용하면 첫 번째 매개 변수를 클래스 이름 문자열로 전달할 수 있지만 세 번째 매개 변수는 true 로 설정해야합니다.

 if (is_a('Dog', 'Animal', true)) {
    echo "Dog 예 Animal 클래스 또는 서브 클래스";
}

산출:

 Dog 예 Animal 클래스 또는 서브 클래스

이런 식으로 클래스가 다른 클래스의 서브 클래스인지 또는 인터페이스가 구현되는지 여부를 결정할 수 있습니다.


3. 실제 데모 : URL 판단과 결합 된 IS_A () 사용 방법은 무엇입니까?

특정 시나리오에서 URL을 기반으로 해당 클래스의 인스턴스를 판단하려면 코드의 URL을 사용하고 도메인 이름을 m66.net 으로 바꿔야합니다. 예제는 다음과 같습니다.

 <?php
class Page {}
class HomePage extends Page {}

$url = 'https://m66.net/home';

$pageClass = 'HomePage';
$pageInstance = new HomePage();

if (is_a($pageInstance, $pageClass)) {
    echo "현재 인스턴스는 다음과 같습니다 $pageClass 친절한";
}

echo "<br>";

if (is_a($pageClass, 'Page', true)) {
    echo "$pageClass 예 Page 친절한或其子친절한";
}
?>

여기서는 $ pageinstance가 홈페이지 클래스의 인스턴스인지, 문자열 클래스 이름 $ pageclass가 페이지 클래스인지 하위 클래스인지 여부를 결정하기 위해 IS_A ()를 사용합니다. 세 번째 매개 변수는 사실 이어야합니다.


4. 요약

  • 첫 번째 매개 변수는 일반적으로 객체를 통과하고 두 번째 매개 변수는 클래스 이름 문자열을 통과합니다.

  • 첫 번째 매개 변수가 클래스 이름 문자열을 전달하면 세 번째 매개 변수가 true를 전달해야합니다.

  • IS_A ()는 지정된 클래스인지 하위 클래스 인스턴스인지 여부를 결정합니다.