`

反射API demo

 
阅读更多
<?php
    /**
     * reflection.php       反射API
     * ========================================
     * @Copyright			(C) 2013  GCMS
     * @Author				guhao
     * @Date		    	13-4-24
     * ========================================
     * @Version             1.0
     */
class person{
    public $name;
    public $gender;
    public function say(){
        echo $this->name,"\tis",$this->gender,"\r\n";
    }
    public function __set($name,$value){
        echo "$name $value \r\n";
        $this->$name=$value;
    }
    public function __get($name){
        if(!isset($this->name)){
            echo "未设置";
            $this->$name="正在为您设置默认值";
        }
        return $this->$name;
    }
}
$student=new person();
$student->name="Tom";
$student->gender="男";
$student->age=24;

//反射获取类的原型
$obj=new ReflectionClass('person');
$className=$obj -> getName();
$Methods = $Properties = array();
foreach($obj->getProperties() as $val){
    $Properties[$val->getName()] = $val;
}
foreach($obj->getMethods() as $val){
    $Methods[$val->getName()] = $val;
}
echo "class {$className}\n{\n";
is_array($Properties)&&ksort($Properties);

foreach($Properties as $k => $v){
    echo "\t";
    echo $v->isPublic() ? 'public' : '',$v->isPrivate ? 'private' : '',$v->isProtected() ? 'protected'  : '',$v->isStatic() ? 'static' : '';
    echo "\t{$k}\n";
}
echo "\n";
if(is_array($Methods)) ksort($Methods);
foreach($Methods as $k => $v){
    echo "\t fonction {$k} () {} \n";
}
echo "}\n";

 

分享到:
评论

相关推荐

    C# .NET Web API 完整 Demo

    DBHelper:数据库操作类,使用原生SQL,查询结果映射到Model,操作数据库非常方便,支持异步,提供了Emit版本的属性赋值比反射性能高,但暂未使用,支持MySQL、Oracle、SQL Server、SQLite、Access Model生成器:...

    java反射的demo代码

    首先,了解几个关键的Java反射API类: 1. `Class`:代表Java类的运行时信息。我们可以通过`Class.forName()`或对象的`getClass()`方法获取`Class`实例。 2. `Constructor`:表示类的构造函数,通过`Class....

    Java反射演示Demo

    这个“Java反射演示Demo”是一个实例,展示了如何利用Java反射API进行各种操作。下面我们将深入探讨Java反射的核心概念及其在实际开发中的应用。 首先,我们需要了解什么是Java反射。在Java中,当我们编译一个程序...

    平行光漫反射模型DEMO

    在这个"平行光漫反射模型DEMO"中,我们可以看到一系列的源代码文件,用于实现这一模型。 `ogl3.cpp`:这是一个使用OpenGL 3.x版本的源代码文件,可能包含了主要的渲染逻辑。OpenGL是一个开放标准的应用程序编程接口...

    Demo3D 程序 API 离线手册 20170331_Demo3D技术_demo3d_

    `Demo3D.Light.Create()`可以创建光源,而`Demo3D.Material.SetColor()`则可以设定物体表面的颜色和反射属性。此外,纹理贴图、法线映射等功能也能通过API实现,为三维模型增添真实感。 在动画制作上,Demo3D API...

    java反射demo

    在“java反射demo”中,我们将深入探讨这个主题。 1. **类加载**:Java反射的起点通常是通过`Class`类的`forName()`方法加载指定类。例如,`Class&lt;?&gt; clazz = Class.forName("com.example.MyClass");`这行代码会...

    java反射技术Demo

    Java反射API在处理泛型时会擦除类型信息,因此在反射操作中无法直接获取到泛型的实际类型。但可以通过方法签名或注解来间接获取。 七、安全性与性能考虑 反射虽然强大,但也带来了安全风险,因为它允许程序访问通常...

    iOS反射Demo

    本示例"iOS反射Demo"着重展示了如何利用反射来处理从爱邦公交API获取的复杂JSON数据,并将其自动解析为对象。 首先,我们了解下反射的概念。反射在Objective-C中主要通过`NSClassFromString`函数和`...

    Android反射的使用demo

    3. API版本兼容:某些反射特性可能在旧版本的Android SDK中不可用,因此需要进行版本检查和适配。 四、ReflectDemo示例 这个Demo可能包含以下几个部分: 1. 加载指定类:首先加载目标类的Class对象。 2. 查找和调用...

    反射与依赖注入DEMO

    反射的主要API包括`Class`类、`Constructor`类、`Method`类和`Field`类。 例如,在`ConsoleApplication7`的DEMO中,可能包含了这样的代码: ```java Class&lt;?&gt; clazz = Class.forName("com.example.MyClass"); ...

    通过反射获取Context实例的Demo

    本示例"通过反射获取Context实例的Demo"将展示如何在没有直接Context引用的情况下,通过反射来获取Context。 首先,我们需要了解反射的基本概念。反射是Java提供的一种能够在运行时检查类、接口、字段和方法的能力...

    java注解和反射的12个demo.zip

    这些Demo旨在帮助学习者深入理解Java注解和反射的原理与应用,通过实际操作加深对这两个概念的认识,提高开发能力。在学习过程中,结合B站狂神的讲解,能够更有效地掌握这些高级特性,为日后的项目开发打下坚实的...

    反射工厂XML配置无需编译加入功能DEMO

    在Java中,`java.lang.reflect`包提供了反射API,包括`Class`、`Constructor`、`Method`和`Field`等类,它们分别代表类、构造器、方法和字段。通过这些类,我们可以获取类的信息,创建对象,调用方法,甚至修改字段...

    open-api-project:基于反射实现,高效 java版开放接口统一网关鉴权demo项目

    【标题】"基于反射实现,高效 Java版开放接口统一网关鉴权demo项目"揭示了这个开源项目的主要特性,即使用反射技术来提高性能,并且是针对Java开发者的开放接口鉴权解决方案。该项目旨在为Java开发者提供一个统一的...

    Android-使用反射和aidl实现的电话拦截功能的demo可以自己修改要拦截的归属地

    本示例"Android-使用反射和aidl实现的电话拦截功能的demo"提供了一个利用反射和Android Interface Definition Language (AIDL)来拦截电话的解决方案。下面将详细介绍这个项目中的关键技术点。 1. **反射(Reflection...

    rpc-demo.zip

    3. **Java动态代理**:Java动态代理是Java反射API的一部分,允许在运行时创建实现了指定接口的新类。在RPC中,动态代理常用于实现服务调用的拦截和增强,例如添加日志、超时控制、事务管理等功能。动态代理类可以...

    非常不错的DirectX Demo

    这个“非常不错的DirectX Demo”显然展示了DirectX的强大功能,包括骨骼动画、用户界面(UI)、地形渲染、动态天空、高光效果以及水面镜面反射等高级视觉特效。 首先,骨骼动画是3D角色动画的一种常见技术,它通过...

    自定义来电秀Demo

    在自定义来电秀中,反射可能被用来间接访问系统的私有API,因为Android系统对于来电显示的部分接口可能是私有的,不对外开放。通过反射,开发者可以绕过这些限制,实现与系统更深层次的交互。 "自定义来电"涉及到对...

    android以太网设置Demo(可运行,但仅提供思路哦,包含所需的framework.jar)

    3. **反射调用**:使用Java的反射API来实例化并操作`EthernetManager`。这可能包括找到`EthernetManager`类,创建其对象,然后调用其中的方法,如`enableEthernet()`和`disableEthernet()`。 4. **错误处理**:由于...

    java SE最经典的桌面小程序(N多demo)适合初学者

    10. **JDBC数据库操作**:Java通过JDBC API连接和操作数据库,DEMO会演示如何建立数据库连接、执行SQL语句、处理结果集等,为数据库应用打下基础。 通过学习和实践这些DEMO,初学者可以逐步建立起对Java SE编程的...

Global site tag (gtag.js) - Google Analytics