라이브러리

[PHP] ReflectionFunctionAbstract::isStatic - 함수가 정적인지 확인합니다.




ReflectionFunctionAbstract::isStatic


`ReflectionFunctionAbstract` 클래스는 PHP Reflection API의 일부로, PHP 함수의 정보를 제공합니다. `isStatic` 메서드는 이 클래스의 인스턴스에 의해 호출될 수 있는 메서드가 정적 메서드인지 여부를 확인합니다.

# 정적 메서드란?


정적 메서드는 클래스 자체에 속하는 메서드입니다. 인스턴스 생성 없이 호출할 수 있으며, 클래스 이름으로 직접 호출할 수 있습니다.

# 예제


#hostingforum.kr
php

class MyClass {

    public static function myStaticMethod() {

        echo "정적 메서드 호출
";

    }



    public function myInstanceMethod() {

        echo "인스턴스 메서드 호출
";

    }

}



$reflection = new ReflectionClass('MyClass');

$staticMethod = $reflection->getMethod('myStaticMethod');

$instanceMethod = $reflection->getMethod('myInstanceMethod');



echo $staticMethod->isStatic() ? "정적 메서드입니다." : "정적 메서드가 아닙니다.
";

echo $instanceMethod->isStatic() ? "정적 메서드입니다." : "정적 메서드가 아닙니다.
";



위 예제에서 `myStaticMethod`는 정적 메서드이므로 `isStatic()` 메서드는 `true`를 반환합니다. 반면 `myInstanceMethod`는 인스턴스 메서드이므로 `isStatic()` 메서드는 `false`를 반환합니다.

# 결과


#hostingforum.kr


정적 메서드입니다.

정적 메서드가 아닙니다.



# 사용 사례


`ReflectionFunctionAbstract::isStatic` 메서드는 PHP Reflection API를 사용하여 클래스의 메서드가 정적 메서드인지 여부를 확인할 때 유용합니다. 예를 들어, 클래스의 메서드가 정적 메서드인지 여부에 따라 다른 동작을 수행할 수 있습니다.

#hostingforum.kr
php

class MyClass {

    public static function myStaticMethod() {

        echo "정적 메서드 호출
";

    }



    public function myInstanceMethod() {

        echo "인스턴스 메서드 호출
";

    }

}



$reflection = new ReflectionClass('MyClass');

$staticMethod = $reflection->getMethod('myStaticMethod');

$instanceMethod = $reflection->getMethod('myInstanceMethod');



if ($staticMethod->isStatic()) {

    $staticMethod->invoke(null); // 정적 메서드 호출

} else {

    $instance = new MyClass();

    $instanceMethod->invoke($instance); // 인스턴스 메서드 호출

}



위 예제에서 `isStatic()` 메서드를 사용하여 `myStaticMethod`가 정적 메서드인지 여부를 확인한 후, 정적 메서드인지 여부에 따라 다른 동작을 수행합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색