>백엔드 개발 >PHP 튜토리얼 >PHP의 반사에 대한 자세한 설명

PHP의 반사에 대한 자세한 설명

韦小宝
韦小宝원래의
2018-03-14 12:46:021674검색

이 글은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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