phpclass/클래스활용2000. 10. 10. 14:24
호환성
PHP4 >= 4.0RC2
기능
현재 문서에 정의된 클래스명을 배열에 담아 반환
형식
array get_declared_classes (void)
설명
get_declared_classes() 함수를 사용하면 현재 스크립트에 정의된 클래스명을 배열에 담아 되돌려 줍니다. 배열 앞부분에는 PHP 스크립트가 현재 문서에 자동으로 삽입시켜주는 클래스가 3개 추가로 포함됩니다. 이와 같이 자동으로 내장되는 클래스는 stdClass(Zend/zend.c에 정의됨), OverloadedTestClass(ext/standard/basic_functions.c에 정의됨), Directory(ext/standard/dir.c에 정의됨)가 있습니다.
또한, PHP를 컴파일할 때 포함하게 되는 특정 라이브러리가 부가적으로 가지고 있는 클래스들이 있습니다. 이와 같이 PHP에 미리정의된 PHP 정의 클래스(predefined classes)와 동일한 이름을 가지고는 사용자 자신의 클래스를 정의할 수 없습니다.
[code php;gutter:false] <?php

// base class with member properties and methods
class Vegetable {
var $edible;
var $color;

function Vegetable( $edible, $color="green" ) {
$this->edible = $edible;
$this->color = $color;
}

function is_edible() {
return $this->edible;
}

function what_color() {
return $this->color;
}
} // end of class Vegetable


// extends the base class
class Spinach extends Vegetable {
var $cooked = false;

function Spinach() {
$this->Vegetable( true, "green" );
}

function cook_it() {
$this->cooked = true;
}

function is_cooked() {
return $this->cooked;
}
} // end of class Spinach

$arr_class = get_declared_classes();

while (list($k,$v)=each($arr_class)) {
echo("\$arr_class[$k]=$v\n");
}

?> [/code]
< 예제 소스 >
$arr_class[0]=stdClass
$arr_class[1]=OverloadedTestClass
$arr_class[2]=Directory
$arr_class[3]=OCI-Lob
$arr_class[4]=vegetable
$arr_class[5]=spinach
< 실행 결과 >
위 예제의 실행결과를 보면, 클래스명 stdClass, OverloadedTestClass, Directory은 PHP 스크립트에 의해 현재 문서에 자동으로 삽입되는 클래스이며, "OCI-Lob"는 PHP 스크립트를 설치할 때 오라클 데이터베이스의 OCI 모듈을 포함시키면서 내장된 클래스이며, 나머지는 사용자가 정의한 클래스들입니다.

Posted by 방글24