개요
PHP의 is_subclass_of() 함수는 특정 객체의 부모 클래스 중에 지정한 클래스가 포함되어 있는지, 즉 해당 객체가 주어진 클래스의 하위(자식) 클래스에 속하는지 확인할 때 사용합니다.
문법
is_subclass_of(object, class, string)
매개변수
object − 검사 대상이 되는 객체입니다.
class − 확인할 부모 클래스의 이름입니다.
string − false로 설정하면 object 자리에 문자열 형태의 클래스 이름을 사용할 수 없습니다.
반환값
is_subclass_of() 함수는 객체 "object"가 "class"의 하위 클래스에 속하는 경우 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.
참고로 이 함수는 객체 자신이 해당 클래스의 인스턴스인 경우에는 TRUE를 반환하지 않으며, 오직 상속 관계만을 검사한다는 점에서 is_a() 함수와 차이가 있습니다.
다음은 실제 사용 예제입니다.
예제
<?php
// 부모 클래스 정의
class wid_fact {
var $oink = 'moo';
}
// 자식 클래스 정의
class wid_fact_child extends wid_fact {
var $oink = 'oink';
}
// 새 객체 생성
$WF = new wid_fact();
$WFC = new wid_fact_child();
if (is_subclass_of($WFC, 'wid_fact')) {
echo "yes, \$WFC is a subclass of wid_fact \n";
} else {
echo "no, \$WFC is not a subclass of wid_fact \n";
}
if (is_subclass_of($WF, 'wid_fact')) {
echo "yes, \$WF is a subclass of wid_fact \n";
} else {
echo "no, \$WF is not a subclass of wid_fact \n";
}
?>출력 결과
yes, $WFC is a subclass of wid_fact no, $WF is not a subclass of wid_fact
실행 결과를 살펴보면, wid_fact_child 클래스는 wid_fact를 상속받았기 때문에 $WFC 객체에 대해 TRUE가 반환됩니다. 반면 $WF 객체는 wid_fact 클래스 자체의 인스턴스일 뿐 하위 클래스가 아니므로 FALSE가 반환됩니다.