>  기사  >  백엔드 개발  >  PHP 반사 메커니즘 설명

PHP 반사 메커니즘 설명

小云云
小云云원래의
2018-03-14 09:54:591582검색

PHP 5는 클래스, 인터페이스, 함수, 메소드 및 확장을 리버스 엔지니어링하는 기능을 추가하는 완전한 리플렉션 API를 갖추고 있습니다. 또한 Reflection API는 함수, 클래스 및 메서드에서 문서 주석을 추출하는 메서드를 제공합니다.

tp 프레임워크에서 리플렉션 사용:

  • ReflectionClass::__construct — ReflectionClass 클래스 생성

public ReflectionClass::__construct ( mixed $argument )
  • ReflectionClass::newInstanceArgs — 지정된 매개변수에서 새 클래스 인스턴스를 생성합니다. 지정된 매개변수가 전달됩니다. 클래스의 생성자에게.

public object ReflectionClass::newInstanceArgs ([ array $args ] )
  • /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 리플렉션 메커니즘에 대한 간략한 설명 example

PHP 반사 메커니즘 및 플러그인 아키텍처 예제에 대한 자세한 설명

위 내용은 PHP 반사 메커니즘 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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