Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP is_a() 함수 완벽 정리 – 객체가 특정 클래스의 인스턴스인지 확인하는 방법

PHP의 is_a() 함수는 주어진 객체가 특정 클래스의 인스턴스이거나, 해당 클래스를 부모 클래스로 상속받고 있는지 확인하는 데 사용됩니다. 조건이 맞으면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.

이 함수는 인터페이스(interface) 구현 여부도 함께 판별할 수 있어, 타입 검사와 다형성 검증에 유용하게 활용됩니다.

문법(Syntax)

is_a(object, class)

매개변수(Parameters)

  • object − 검사할 대상 객체입니다.

  • class − 확인하려는 클래스의 이름입니다.

반환 값(Return)

객체가 해당 클래스의 인스턴스이거나 그 클래스를 부모로 상속받은 경우 TRUE를 반환하며, 그렇지 않은 경우 FALSE를 반환합니다.

예제(Example)

다음은 is_a() 함수의 기본적인 사용 예시입니다.

<?php
interface ClassOne {
    public function Demo();
}
class ClassTwo implements ClassOne {
    public function Demo () {
        print "Demo";
    }
}
$obj = new ClassTwo();
if(is_a($obj, 'ClassOne')) {
    echo "Correct!";
} else {
    echo "Incorrect!";
}
?>

출력 결과(Output)

Correct!

참고 사항

위 예제에서 $objClassTwo의 인스턴스이지만, ClassTwoClassOne 인터페이스를 구현하고 있으므로 is_a() 함수는 TRUE를 반환합니다.

또한 PHP 5.3.0부터는 instanceof 연산자로도 동일한 검사를 수행할 수 있습니다. 다만 instanceof는 클래스 이름을 직접 작성해야 하는 반면, is_a()는 문자열 형태의 클래스 이름을 사용할 수 있다는 차이점이 있습니다.