>  기사  >  백엔드 개발  >  PHP 객체지향 리플렉션 함수 사용법에 대한 자세한 설명

PHP 객체지향 리플렉션 함수 사용법에 대한 자세한 설명

黄舟
黄舟원래의
2017-03-30 09:10:171065검색

이 글에서는 주로 php객체지향의 Reflection 기능과 사용법을 소개하고, php5 객체지향 Reflection의 개념과 구체적인 사용법을 예제 형식으로 간략하게 분석합니다. 필요하신 분들은 참고하시면 됩니다.

본 글의 예시에서는 PHP 객체지향의 Reflection 기능과 사용법을 설명하고 있습니다. 참고하실 수 있도록 모두와 공유해 주세요. 자세한 내용은 다음과 같습니다.

반성의 정의에 대한 개인적인 이해:

먼저 반성이 무엇인지 이야기해야 합니다. 초보자에게 성찰이라는 개념은 종종 사람들에게 그것을 이해하지 못하고 어떻게 작동해야 할지 모른다는 느낌을 줍니다.

리플렉션은 다음을 의미합니다. 상태를 실행하는 PHP에서 PHP 프로그램을 확장하여 클래스, 메소드, 속성 , 매개변수 등의 세부정보와 주석도 포함됩니다. 이렇게 동적으로 정보를 얻고 객체 메소드를 동적으로 호출하는 기능을 리플렉션API이라고 합니다. Reflection은 객체 지향 패러다임에서 메타모델을 조작하기 위한 API로, 매우 강력하며 복잡하고 확장 가능한 애플리케이션을 구축하는 데 도움이 됩니다. (참고: PHP에서 이러한 종류의 역연산은 실제로 PHP5 이후에만 완전히 사용할 수 있습니다)

아래 예를 통해 설명하겠습니다.

class test{
     private   $A;
     public   $B;
     protected  $C;
     public function test(){
       return "this is a test function";
     }
}
//实例化一个反射类ReflectionClass
$obj=new ReflectionClass('test');
echo $obj."<br>";
//实例化test类,并访问其test方法
$obj2=$obj->newInstance();
echo $obj2->test();

개인 인스턴스 반환 결과:


/** 
* xxx.php 
* ============================================== 
* Copy right 2012-2015 
* ---------------------------------------------- 
* This is not a free software, without any authorization is not allowed to use and spread. 
* ============================================== 
* @Author:YeXianMing 
* @Email:LangWaiShiGe@hotmail.com 
* @Version:zend studio10.6.2 php5.4.38 apache2.2 
*/ 
Class [ class test ] 
{ @@ D:\www\MyProjecttest\index5.php 13-21 - Constants [0] { } 
- Static properties [0] { } 
- Static methods [0] { } 
- Properties [3] 
{ 
Property [ private $A ] 
Property [ public $B ] 
Property [ protected $C ] 
} 
- Methods [1] { 
Method [ 
public method test 
] 
{ 
@@ D:\www\MyProjecttest\index5.php 18 - 20 
} 
} 
}
this is a test function

위 내용은 PHP 객체지향 리플렉션 함수 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.