라이브러리

[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` 클래스의 인스턴스이기 때문입니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 289 페이지

검색

게시물 검색