php 用反射API来获取一个类的原型
2014-03-26 20:40
281 查看
<?php /*2014-03-26 *接 上次发布的<<php 反射API >>====>用反射API 来反射获取一个类的原型 *看下边的代码: */ class person{ public $name; public $gender; public function say(){ echo $this->name,"\tis",$this->gender,"\r\n"; } public function __set($name,$value){ echo "Setting $name to $value"; $this->$name=$value; } public function __get($name){ if(!isset($this->name)){ echo '未设置'; $this->$name='现在为你设置默认值'; } return $this->$name; } } $student = new person(); $obj = new ReflectionClass(get_class($student)); $className = $obj->getName(); $Methods = $Properties =array(); foreach($obj->getProperties() as $v){ $Properties[$v->getName()] = $v; } foreach($obj->getMethods() as $v){ $Methods[$v->getName()] = $v; } echo "class $className \n {\n"; is_array($Properties)&&ksort($Properties); foreach($Properties as $k=>$v){ echo "\t"; echo $v->isPublic()?'public':'',$v->isProtected()?'protected':'',$v->isPrivate()?'private':'',$v->isStatic()?'static':''; echo "\t{$k}\n"; } echo "\n"; is_array($Methods)&&ksort($Methods); foreach($Methods as $k=>$v){ echo "\tfunction {$k}(){}\n"; } echo "}\n"; /*输出结果 * class person { public gender public name function __get(){} function __set(){} function say(){} } 反射还有很多相关类,可参考手册。 未完待续......(下一篇文章根据反射写一个实际运行====简单的动态代理) */ ?>
相关文章推荐
- php反射API 获取属性/注释/方法 执行方法 实例
- PHP基于反射获取一个类中所有的方法
- php 利用反射API获取类信息
- php 如何获取一个变量的名字
- JAVA反射初探之获取一个实例对象
- PHP 反射API 之 ReflectionObject 的用法实例
- 玩玩反射 - 刚写的一个动态获取属性值的例子
- 109_利用反射调用隐藏api获取应用程序的缓存大小
- **关于PHP如何定义一个空对象(REST API如何处理空对象和空数组)
- Reflect 通过反射获取自定义注解值给另外一个对象赋值
- 使用php创建一个Rest Api
- 使用PHP的反射Reflection获取对象信息
- PHP获取生成一个页面的数据库查询次数
- PHP反射API
- java进阶之反射:反射基础之如何获取一个类以及如何获取这个类的所有属性和方法(2)
- PHP获取一个类中定义的所有属性
- 反射获取属性数组为空,一个大大的坑。。。
- php使用反射API
- 学习用js, ajax, php做一个简单的小黄鸡页面(调用simsimi API)
- paip.获取文件名从路径uapi java python php总结...