PHP反射类ReflectionClass和ReflectionObject的使用方法

 更新时间:2013年11月13日 10:26:03   作者:  
PHP反射类ReflectionClass和ReflectionObject
PHP中的扩展反射类,该扩展用来分析php程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。
看一个这样的问题,php类的成员变量没有在类中声明,而是在函数中声明,有什么不同?
复制代码 代码如下:

class test{
    private $name;
    private $sex;
    function __construct(){
        $this->aaa='aaa';
    }
}

$test=new test();

$reflect=new ReflectionClass($test);
$pro=$reflect->getDefaultProperties();
print_r($pro);//打印结果:Array ( [name] => [sex] => )

echo $test->aaa;//打印结果:aaa

在这个test类中,声明了两个成员变量$name和$sex,但是在构造函数中,又声明了一个变量$aaa,初始化类,使用反射类打印默认成员属性只有声明的两个成员变量属性,但是打印类的$aaa变量发现还是可以输出结果。
请问类的成员变量不用声明,在函数中声明也是可以的吗,有什么区别?
在你这个例子中,使用ReflectionClass是不恰当的,因为__construct只有在实例化class时,才会执行。
也就是说ReflectionClass更多的是反射类声明时的结构,而不是类实例化后的结构,所以没有输出属性aaa是正确,因为属性aaa确实是(在类声明时)不存在的。
那么怎么看属性aaa呢,应该用ReflectionObject反射实例化后的结构,例如
复制代码 代码如下:

<?php
class test{
    private $name;
    private $sex;
    function __construct(){
        $this->aaa='aaa';
    }
}
$test=new test();

$reflect=new ReflectionObject($test);
$pro=$reflect->getProperties();
print_r($pro);
 

经过实例化以后,属性aaa才会存在,这时你就能看到属性aaa了
因为php是“动态”语言,所以可以类的成员变量不用声明,在函数中声明也是可以的。

相关文章

  • PHP Socket网络操作类定义与用法示例

    PHP Socket网络操作类定义与用法示例

    这篇文章主要介绍了PHP Socket网络操作类定义与用法,结合实例形式分析了php socket网络操作类的定义及结合ajax发送查询请求等相关使用技巧,需要的朋友可以参考下
    2017-08-08
  • PHP应用代码复杂度检测使用方法

    PHP应用代码复杂度检测使用方法

    这篇文章主要为大家介绍了PHP应用代码复杂度检测使用方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • php实现将上传word文件转为html的方法

    php实现将上传word文件转为html的方法

    这篇文章主要介绍了php实现将上传word文件转为html的方法,涉及php针对word文件操作的相关技巧,需要的朋友可以参考下
    2015-06-06
  • 浅析PHP类的反射来实现依赖注入过程

    浅析PHP类的反射来实现依赖注入过程

    这篇文章主要介绍了PHP类的反射来实现依赖注入过程以及相关知识点分享,对此有兴趣的朋友跟着小编学习下吧。
    2018-02-02
  • 如何在PHP中读写文件

    如何在PHP中读写文件

    这篇文章主要介绍了如何在PHP中读写文件,帮助大家更好的理解和学习php,感兴趣的朋友可以了解下
    2020-09-09
  • PHP实现微信扫码登录功能的两种方式总结

    PHP实现微信扫码登录功能的两种方式总结

    这篇文章主要为大家介绍了利用PHP实现微信扫码登录功能的两种方式,文中的示例代码讲解详细,对我们学习有一定借鉴价值,需要的可以参考一下
    2022-08-08
  • PHP命名空间简单用法示例

    PHP命名空间简单用法示例

    这篇文章主要介绍了PHP命名空间简单用法,结合具体实例形式分析了php命名空间的简单定义与使用相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • PHP生成RSS文件类实例

    PHP生成RSS文件类实例

    这篇文章主要介绍了PHP生成RSS文件类,可实现PHP生成RSS文件的功能,对于网站建设与优化来说具有一定的实用价值,需要的朋友可以参考下
    2014-12-12
  • PHP实现查询手机归属地的方法详解

    PHP实现查询手机归属地的方法详解

    最近通过在网上面的学习,完成了 PHP 实现手机归属地查询的功能。所以下面这篇文章主要给大家介绍了利用PHP实现查询手机归属地的方法,文中给出了详细的代码示例,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • PHP 读取文件的正确方法

    PHP 读取文件的正确方法

    PHP 读取文件的多种方法,让我们算一算有多少种方法
    2009-04-04

最新评论