라이브러리
[PHP] ReflectionClass::isInstance - 인스턴스에 대한 클래스를 확인합니다.
ReflectionClass::isInstance
PHP ReflectionClass::isInstance 메소드는 인자로 전달된 객체가 특정 클래스의 인스턴스인지 확인하는 메소드입니다.
# 사용 방법
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('클래스명');
$isInstance = $reflectionClass->isInstance($객체);
# 예제
#hostingforum.kr
php
class User {
public $name;
public $email;
public function __construct($name, $email) {
$this->name = $name;
$this->email = $email;
}
}
class Admin extends User {
public $role;
public function __construct($name, $email, $role) {
parent::__construct($name, $email);
$this->role = $role;
}
}
$user = new User('John Doe', 'john@example.com');
$admin = new Admin('Jane Doe', 'jane@example.com', '관리자');
$reflectionUser = new ReflectionClass('User');
$reflectionAdmin = new ReflectionClass('Admin');
echo $reflectionUser->isInstance($user) ? 'true' : 'false'; // true
echo "
";
echo $reflectionUser->isInstance($admin) ? 'true' : 'false'; // false
echo "
";
echo $reflectionAdmin->isInstance($admin) ? 'true' : 'false'; // true
echo "
";
echo $reflectionAdmin->isInstance($user) ? 'true' : 'false'; // false
# 결과
#hostingforum.kr
true
false
true
false
# 설명
* `$reflectionUser->isInstance($user)`는 `$user` 객체가 `User` 클래스의 인스턴인지 확인합니다. 결과는 `true`입니다.
* `$reflectionUser->isInstance($admin)`는 `$admin` 객체가 `User` 클래스의 인스턴인지 확인합니다. 결과는 `false`입니다. 왜냐하면 `$admin` 객체는 `Admin` 클래스의 인스턴스이기 때문입니다.
* `$reflectionAdmin->isInstance($admin)`는 `$admin` 객체가 `Admin` 클래스의 인스턴인지 확인합니다. 결과는 `true`입니다.
* `$reflectionAdmin->isInstance($user)`는 `$user` 객체가 `Admin` 클래스의 인스턴인지 확인합니다. 결과는 `false`입니다. 왜냐하면 `$user` 객체는 `User` 클래스의 인스턴스이기 때문입니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.