라이브러리
[PHP] ReflectionClass::isInstantiable - 클래스가 인스턴스화 가능한지 확인합니다.
ReflectionClass::isInstantiable
PHP의 ReflectionClass는 클래스의 정보를 가져올 수 있는 클래스입니다. ReflectionClass::isInstantiable 메소드는 인스턴스를 생성할 수 있는지 여부를 확인하는 메소드입니다.
# 사용법
#hostingforum.kr
php
ReflectionClass::isInstantiable($className)
* `$className` : 확인할 클래스 이름
# 예제
#hostingforum.kr
php
// 예제 클래스
class User {
public $name;
public function __construct($name) {
$this->name = $name;
}
}
// ReflectionClass 인스턴스 생성
$reflectionClass = new ReflectionClass('User');
// 인스턴스를 생성할 수 있는지 확인
if ($reflectionClass->isInstantiable()) {
echo "인스턴스를 생성할 수 있습니다.
";
} else {
echo "인스턴스를 생성할 수 없습니다.
";
}
# 결과
#hostingforum.kr
인스턴스를 생성할 수 있습니다.
# 예제 2 - 추상 클래스
#hostingforum.kr
php
// 추상 클래스
abstract class Animal {
abstract public function sound();
}
// ReflectionClass 인스턴스 생성
$reflectionClass = new ReflectionClass('Animal');
// 인스턴스를 생성할 수 있는지 확인
if ($reflectionClass->isInstantiable()) {
echo "인스턴스를 생성할 수 있습니다.
";
} else {
echo "인스턴스를 생성할 수 없습니다.
";
}
# 결과
#hostingforum.kr
인스턴스를 생성할 수 없습니다.
# 예제 3 - 인터페이스
#hostingforum.kr
php
// 인터페이스
interface Flyable {
public function fly();
}
// ReflectionClass 인스턴스 생성
$reflectionClass = new ReflectionClass('Flyable');
// 인스턴스를 생성할 수 있는지 확인
if ($reflectionClass->isInstantiable()) {
echo "인스턴스를 생성할 수 있습니다.
";
} else {
echo "인스턴스를 생성할 수 없습니다.
";
}
# 결과
#hostingforum.kr
인스턴스를 생성할 수 없습니다.
# 예제 4 - 클래스가 존재하지 않는 경우
#hostingforum.kr
php
// 존재하지 않는 클래스
$reflectionClass = new ReflectionClass('NonExistentClass');
// 인스턴스를 생성할 수 있는지 확인
if ($reflectionClass->isInstantiable()) {
echo "인스턴스를 생성할 수 있습니다.
";
} else {
echo "인스턴스를 생성할 수 없습니다.
";
}
# 결과
#hostingforum.kr
인스턴스를 생성할 수 없습니다.
결론
ReflectionClass::isInstantiable 메소드는 클래스가 인스턴스를 생성할 수 있는지 여부를 확인하는 메소드입니다. 클래스가 추상 클래스, 인터페이스, 또는 존재하지 않는 경우 인스턴스를 생성할 수 없습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.