首頁 > 後端開發 > php教程 > php反射機制解說

php反射機制解說

小云云
發布: 2023-03-21 11:00:02
原創
1589 人瀏覽過

PHP 5 具有完整的反射 API,增加了對類別、介面、函數、方法和擴充進行反向工程的能力。 此外,反射 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反射機制實例詳解

php反射機制詳以及插件架構實例詳解

以上是php反射機制解說的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板