PHP反射

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

反射是什么?
它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。这种动态获取的信息以及动态调用对象的方法的功能称为反射API。反射是操纵面向对象范型中元模型的API,其功能十分强大,可帮助我们构建复杂,可扩展的应用。

测试代码:

<?php 

/**
 * 
 * Class Fake
 * @package Extend
 */
class Fake{
    const ROLE = 'fake';
    public $Fakename = '';
    private $age = '';

    public function __construct($Fakename, $age)
    {
        $this->Fakename = $Fakename;
        $this->age = $age;
    }

    /**
     * 获取用户名
     * @return string
     */
    public function getFakename()
    {
        return $this->Fakename;
    }

    /**
     * 设置用户名
     * @param string $Fakename
     */
    public function setFakename($Fakename)
    {
        $this->Fakename = $Fakename;
    }

    /**
     * 获取密码
     * @return string
     */
    private function getage()
    {
        return $this->age;
    }

    /**
     * 设置密码
     * @param string $age
     */
    private function setPassowrd($age)
    {
        $this->age = $age;
    }
}

$class = new ReflectionClass('Fake');  // 实例化反射类,参数是类名(string)或者类的实例(object)
$w = $class->newInstance('a','11');//创建Fake实例



$properties = $class->getProperties();  // 获取Fake类的所有属性,返回ReflectionProperty的数组

$property = $class->getProperty('age'); // 获取Fake类的age属性ReflectionProperty

$methods = $class->getMethods();   // 获取Fake类的所有方法,返回ReflectionMethod数组

$method = $class->getMethod('getFakename');  // 获取Fake类的getFakename方法的ReflectionMethod

$constants = $class->getConstants();   // 获取所有常量,返回常量定义数组

$constant = $class->getConstant('ROLE');   // 获取ROLE常量
$namespace = $class->getNamespaceName();  // 获取类的命名空间
$comment_class = $class->getDocComment();  // 获取Fake类的注释文档,即定义在类之前的注释
$comment_method = $class->getMethod('getFakename')->getDocComment();  // 获取Fake类中getFakename方法的注释文档

官方文档:官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值