이 글은 PHP의 리플렉션에 대해 설명합니다. PHP 리플렉션에 대해 잘 모르는 경우에는 PHP의 리플렉션에 대해 간략하게 설명하고 살펴보겠습니다.
PHP 5는 완전한 리플렉션 API를 갖추고 있어 클래스, 인터페이스, 함수, 메서드 및 확장을 리버스 엔지니어링하는 기능을 추가합니다. 또한 Reflection API는 함수, 클래스 및 메서드에서 문서 주석을 추출하는 메서드를 제공합니다.
TP 프레임워크에서 리플렉션 사용
1.ReflectionClass::__construct — ReflectionClass 클래스 생성
public ReflectionClass::__construct ( mixed $argument )
2 — 지정된 매개변수에서 새 클래스 인스턴스를 만듭니다. 주어진 매개변수는 클래스의 생성자에 전달됩니다.
public object ReflectionClass::newInstanceArgs ([ array $args ] )
3. /thinkphp/library/think/Container.php
/** * 调用反射执行类的实例化 支持依赖注入 * @access public * @param string $class 类名 * @param array $vars 参数 * @return mixed */ public function invokeClass($class, $vars = []) { try { $reflect = new ReflectionClass($class); $constructor = $reflect->getConstructor(); //用于支持依赖的注入 $args = $constructor ? $this->bindParams($constructor, $vars) : []; return $reflect->newInstanceArgs($args); } catch (ReflectionException $e) { throw new ClassNotFoundException('class not exists: ' . $class, $class); } }
이 글에서는 PHP의 리플렉션에 대해 간략하게 설명합니다. 아직도 이해가 되지 않는다면 직접 연습하고 작성해보세요!
위 내용은 PHP의 반사에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!