php反射机制讲解

小云云
Lepaskan: 2023-03-21 11:00:02
asal
1562 orang telah melayarinya

PHP 5 具有完整的反射 API,添加了对类、接口、函数、方法和扩展进行反向工程的能力。 此外,反射 API 提供了方法来取出函数、类和方法中的文档注释。

tp框架中反射的使用:

  • ReflectionClass::__construct — 构造一个 ReflectionClass 类

public ReflectionClass::__construct ( mixed $argument )
Salin selepas log masuk
  • ReflectionClass::newInstanceArgs — 从给出的参数创建一个新的类实例,给出的参数将传递到类的构造函数。

public object ReflectionClass::newInstanceArgs ([ array $args ] )
Salin selepas log masuk
  • /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);
        }
    }
Salin selepas log masuk

相关推荐:

详解php反射方法调用执行类中的私有方法

简述php反射机制实例详解

php反射机制详以及插件架构实例详解

Atas ialah kandungan terperinci php反射机制讲解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!