라이브러리

[PHP] ReflectionProperty::getDeclaringClass - 선언 클래스 가져오기




ReflectionProperty::getDeclaringClass


PHP Reflection API는 PHP 코드를 분석하고, 클래스, 메소드, 프로퍼티, 인터페이스 등에 대한 정보를 제공하는 기능입니다. ReflectionProperty::getDeclaringClass는 ReflectionProperty 객체를 통해 해당 프로퍼티가 선언된 클래스를 반환하는 메소드입니다.

사용 예제


#hostingforum.kr
php

class Person {

    public $name;

    public $age;



    public function __construct($name, $age) {

        $this->name = $name;

        $this->age = $age;

    }

}



class Student extends Person {

    public $studentId;



    public function __construct($name, $age, $studentId) {

        parent::__construct($name, $age);

        $this->studentId = $studentId;

    }

}



$person = new Person('John', 30);

$student = new Student('Jane', 25, 'S001');



$reflectionPerson = new ReflectionClass('Person');

$reflectionStudent = new ReflectionClass('Student');



$reflectionName = new ReflectionProperty($reflectionPerson, 'name');

$reflectionAge = new ReflectionProperty($reflectionPerson, 'age');

$reflectionStudentId = new ReflectionProperty($reflectionStudent, 'studentId');



echo $reflectionName->getDeclaringClass()->getName() . "
"; // Person

echo $reflectionAge->getDeclaringClass()->getName() . "
"; // Person

echo $reflectionStudentId->getDeclaringClass()->getName() . "
"; // Student



설명


* 위 예제에서, `Person` 클래스는 `name`과 `age` 프로퍼티를 선언하고 있습니다. `Student` 클래스는 `Person` 클래스를 상속하고, `studentId` 프로퍼티를 추가하고 있습니다.
* `ReflectionProperty` 객체를 통해 `name`, `age`, `studentId` 프로퍼티의 선언된 클래스를 확인할 수 있습니다.
* `getDeclaringClass()` 메소드는 `ReflectionProperty` 객체를 통해 해당 프로퍼티가 선언된 클래스를 반환합니다.
* 위 예제에서, `name`과 `age` 프로퍼티는 `Person` 클래스가 선언한 프로퍼티이므로, `getDeclaringClass()` 메소드는 `Person` 클래스를 반환합니다.
* 반면, `studentId` 프로퍼티는 `Student` 클래스가 선언한 프로퍼티이므로, `getDeclaringClass()` 메소드는 `Student` 클래스를 반환합니다.

결론


`ReflectionProperty::getDeclaringClass` 메소드는 ReflectionProperty 객체를 통해 해당 프로퍼티가 선언된 클래스를 반환하는 기능을 제공합니다. 이 메소드는 PHP Reflection API의 중요한 기능 중 하나이며, 클래스, 메소드, 프로퍼티 등에 대한 정보를 분석하고, 사용할 수 있도록 합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색