
ReflectionMethod::getDeclaringClass 메서드는 메서드가 선언된 클래스를 반환합니다.
이 메서드는 메서드가 선언된 클래스의 이름을 반환하는 것이 아니라, 실제 클래스 객체를 반환합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
php
class MyClass {
public function myMethod() {}
}
$reflectionMethod = new ReflectionMethod('MyClass', 'myMethod');
$class = $reflectionMethod->getDeclaringClass();
echo get_class($class); // MyClass
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 private 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
class MyClass {
private function myPrivateMethod() {}
public function getMyPrivateMethod() {
$reflectionMethod = new ReflectionMethod($this, 'myPrivateMethod');
$class = $reflectionMethod->getDeclaringClass();
return $class;
}
}
$obj = new MyClass();
$class = $obj->getMyPrivateMethod();
echo get_class($class); // MyClass
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 상속 관계에 있는 클래스의 경우에도 작동합니다.
#hostingforum.kr
php
class ParentClass {
public function myMethod() {}
}
class ChildClass extends ParentClass {}
$reflectionMethod = new ReflectionMethod('ChildClass', 'myMethod');
$class = $reflectionMethod->getDeclaringClass();
echo get_class($class); // ChildClass
위 코드에서, $class는 ChildClass 클래스의 객체입니다.
이 메서드는 인터페이스에 정의된 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
interface MyInterface {
public function myMethod();
}
class MyClass implements MyInterface {}
$reflectionMethod = new ReflectionMethod('MyClass', 'myMethod');
$class = $reflectionMethod->getDeclaringClass();
echo get_class($class); // MyClass
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 추상 클래스에 정의된 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
abstract class MyAbstractClass {
public abstract function myMethod();
}
class MyClass extends MyAbstractClass {}
$reflectionMethod = new ReflectionMethod('MyClass', 'myMethod');
$class = $reflectionMethod->getDeclaringClass();
echo get_class($class); // MyClass
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 final 클래스에 정의된 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
final class MyFinalClass {
public function myMethod() {}
}
$reflectionMethod = new ReflectionMethod('MyFinalClass', 'myMethod');
$class = $reflectionMethod->getDeclaringClass();
echo get_class($class); // MyFinalClass
위 코드에서, $class는 MyFinalClass 클래스의 객체입니다.
이 메서드는 static 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
class MyClass {
public static function myStaticMethod() {}
}
$reflectionMethod = new ReflectionMethod('MyClass', 'myStaticMethod');
$class = $reflectionMethod->getDeclaringClass();
echo get_class($class); // MyClass
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 trait에 정의된 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
trait MyTrait {
public function myMethod() {}
}
class MyClass {
use MyTrait;
}
$reflectionMethod = new ReflectionMethod('MyClass', 'myMethod');
$class = $reflectionMethod->getDeclaringClass();
echo get_class($class); // MyClass
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 Closure에 정의된 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
$myClosure = function() {
public function myMethod() {}
};
$reflectionMethod = new ReflectionMethod($myClosure, 'myMethod');
$class = $reflectionMethod->getDeclaringClass();
echo get_class($class); // Closure
위 코드에서, $class는 Closure 클래스의 객체입니다.
이 메서드는 anonymous class에 정의된 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
$myAnonymousClass = new class {
public function myMethod() {}
};
$reflectionMethod = new ReflectionMethod($myAnonymousClass, 'myMethod');
$class = $reflectionMethod->getDeclaringClass();
echo get_class($class); // Closure
위 코드에서, $class는 Closure 클래스의 객체입니다.
이 메서드는 ReflectionClass::getMethods() 메서드에서 반환된 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('MyClass');
$methods = $reflectionClass->getMethods();
foreach ($methods as $method) {
$class = $method->getDeclaringClass();
echo get_class($class); // MyClass
}
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 ReflectionClass::getProperties() 메서드에서 반환된 속성의 경우에도 작동합니다.
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('MyClass');
$properties = $reflectionClass->getProperties();
foreach ($properties as $property) {
$class = $property->getDeclaringClass();
echo get_class($class); // MyClass
}
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 ReflectionClass::getMethods() 메서드에서 반환된 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('MyClass');
$methods = $reflectionClass->getMethods();
foreach ($methods as $method) {
$class = $method->getDeclaringClass();
echo get_class($class); // MyClass
}
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 ReflectionClass::getProperties() 메서드에서 반환된 속성의 경우에도 작동합니다.
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('MyClass');
$properties = $reflectionClass->getProperties();
foreach ($properties as $property) {
$class = $property->getDeclaringClass();
echo get_class($class); // MyClass
}
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 ReflectionClass::getMethods() 메서드에서 반환된 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('MyClass');
$methods = $reflectionClass->getMethods();
foreach ($methods as $method) {
$class = $method->getDeclaringClass();
echo get_class($class); // MyClass
}
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 ReflectionClass::getProperties() 메서드에서 반환된 속성의 경우에도 작동합니다.
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('MyClass');
$properties = $reflectionClass->getProperties();
foreach ($properties as $property) {
$class = $property->getDeclaringClass();
echo get_class($class); // MyClass
}
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 ReflectionClass::getMethods() 메서드에서 반환된 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('MyClass');
$methods = $reflectionClass->getMethods();
foreach ($methods as $method) {
$class = $method->getDeclaringClass();
echo get_class($class); // MyClass
}
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 ReflectionClass::getProperties() 메서드에서 반환된 속성의 경우에도 작동합니다.
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('MyClass');
$properties = $reflectionClass->getProperties();
foreach ($properties as $property) {
$class = $property->getDeclaringClass();
echo get_class($class); // MyClass
}
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 ReflectionClass::getMethods() 메서드에서 반환된 메서드의 경우에도 작동합니다.
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('MyClass');
$methods = $reflectionClass->getMethods();
foreach ($methods as $method) {
$class = $method->getDeclaringClass();
echo get_class($class); // MyClass
}
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 ReflectionClass::getProperties() 메서드에서 반환된 속성의 경우에도 작동합니다.
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('MyClass');
$properties = $reflectionClass->getProperties();
foreach ($properties as $property) {
$class = $property->getDeclaringClass();
echo get_class($class); // MyClass
}
위 코드에서, $class는 MyClass 클래스의 객체입니다.
이 메서드는 ReflectionClass::getMethods() 메서드에서 반환된 메서드의 경우에도 작동합니다.
```php
$reflectionClass = new ReflectionClass('MyClass');
2025-07-16 01:39