php反射应用示例
<?php
function custom(){
}
class custom{
public function index(){
}
}
print_r(get_define_position('custom'));
/**
* /
* @param string $name 函数名或者类名
* @return array
*/
function get_define_position($name){
$info = array();
if(class_exists($name)){
$ob = new ReflectionClass($name);
$info['class_'.$name]= array('file'=>$ob->getFileName(),'line'=>$ob->getStartLine());
}
if(function_exists($name)){
$ob = new ReflectionFunction($name);
$info['function_'.$name]= array('file'=>$ob->getFileName(),'line'=>$ob->getStartLine());
}
return $info;
}
相关推荐
-
实例介绍PHP的Reflection反射机制
PHP5添加了一项新的功能:Reflection.这个功能使得程序员可以reverse-engineer class, interface,function,method and extension.通过PHP代码,就可以得到某object的所有信息,并且可以和它交互. 假设有一个类Person: 复制代码 代码如下: class Person { /** * For the sake of demonstration, we"re setting this private
-
PHP反射机制原理与用法详解
本文实例讲述了PHP反射机制原理与用法.分享给大家供大家参考,具体如下: 反射 面向对象编程中对象被赋予了自省的能力,而这个自省的过程就是反射. 反射,直观理解就是根据到达地找到出发地和来源.比如,一个光秃秃的对象,我们可以仅仅通过这个对象就能知道它所属的类.拥有哪些方法. 反射是指在PHP运行状态中,扩展分析PHP程序,导出或提出关于类.方法.属性.参数等的详细信息,包括注释.这种动态获取信息以及动态调用对象方法的功能称为反射API. 如何使用反射API <?php class person{
-
PHP反射机制用法实例
本文实例讲述了PHP反射机制的用法,分享给大家供大家参考之用.具体方法如下: 演示示例代码如下所示: <?php class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function __construct() { $this->target[] = new ClassOne(); } function
-
PHP 反射(Reflection)使用实例
PHP Reflection是用于获取类.扩展.方法.函数.对象.参数.属性的详细信息. ReflectionClass类获取类相关信息,如获取属性.方法.文档注释等. <?php class Person { /** * For the sake of demonstration, we"re setting this private */ private $_allowDynamicAttributes = false; /** type=primary_autoincrement *
-
浅谈PHP的反射机制
1. 介绍 -- PHP5添加了一项新的功能:Reflection.这个功能使得phper可以reverse-engineer class, interface,function,method and extension.通过PHP代码,就可以得到某object的所有信息,并且可以和它交互. -- 反射是什么? 它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类.方法.属性.参数等的详细信息,包括注释.这种动态获取的信息以及动态调用对象的方法的功能称为反射API.反射是操纵面向对象
-
PHP类的反射用法实例
本文实例讲述了PHP类的反射用法.分享给大家供大家参考.具体实现方法如下: 该例实现对于每个频道获取相应的类来执行相应的操作.具体如下: 复制代码 代码如下: foreach($this->chs as $ch) { $className = $this->chsMap[$ch]; if($className) { // 如果是合法的类名 // 获取反射类 $class = new ReflectionClass($className); // 获取类的方法 $recd =
-
PHP 反射机制实现动态代理的代码
演示用代码如下所示: 复制代码 代码如下: <?php class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function __construct() { $this->target[] = new ClassOne(); } function __call($name, $args) { fore
-
PHP的反射机制实例详解
本文实例讲述了PHP的反射机制.分享给大家供大家参考,具体如下: 介绍: PHP5添加了一项新的功能:Reflection.这个功能使得phper可以reverse-engineer class, interface,function,method and extension.通过PHP代码,就可以得到某object的所有信息,并且可以和它交互. 反射是什么? 它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类.方法.属性.参数等的详细信息,包括注释.这种动态获取的信息以及动态调用
-
PHP基于反射机制实现插件的可插拔设计详解
本文实例讲述了PHP基于反射机制实现插件的可插拔设计.分享给大家供大家参考,具体如下: 说PHP和ASP等同的朋友们可以就此打住了,PHP支持反射,而且还是非常的强大.好了,我们开始今天的话题. 功能描述: 页面拥有一个主导航菜单,里头有默认连接若干. 插件统一存放在一个目录,插件载入后会自动在导航菜单中增加上自己所需的链接. 插件载入时可执行一定的操作. 动态增删插件无需改动代码. 最终效果: 首页,插件1,插件2 "首页"是系统自带的菜单项."插件1"和&quo
-
PHP中的reflection反射机制测试例子
Java类反射应用得非常广泛几乎是所有框架的最核心部分,PHP程序员似乎从不关心反射.尝试着用java的思想去理解php的反射,跟java基本上基本一致.参考了php手册:http://www.php.net/manual/zh/book.reflection.php. ReflectTest.php: <?php class ReflectTest { /** * 用户ID */ private $userId; /** * 用
-
解析php中反射的应用
一 反射的使用: 复制代码 代码如下: <?phpclass Person{ public $name; function __construct($name){ $this->name=$name; }}interface Module{ function execute();}class FtpModule implements Module{ function setHost($host){ print "FtpModule::setHost():$host\n"
-
详解php中反射的应用
反射是在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类.方法.属性.参数等的详细信息,包括注释.这种动态获取的信息以及动态调用对象的方法的功能称为反射API.反射是操纵面向对象范型中元模型的API,其功能十分强大,可帮助我们构建复杂,可扩展的应用. 其用途如:自动加载插件,自动生成文档,甚至可用来扩充PHP语言. php反射api由若干类组成,可帮助我们用来访问程序的元数据或者同相关的注释交互.借助反射我们可以获取诸如类实现了那些方法,创建一个类的实例(不同于用new创建),调用一个方
-
PHP使用反射机制实现查找类和方法的所在位置
本文实例讲述了PHP使用反射机制实现查找类和方法的所在位置.分享给大家供大家参考,具体如下: //参数1是类名,参数2是方法名 $func = new ReflectionMethod('UnifiedOrder_pub', 'getPrepayId'); //从第几行开始 $start = $func->getStartLine() - 1; //从第几行结束 $end = $func->getEndLine() - 1; //获取路径地址 $filename = $func->get
随机推荐
- 用SQL语句查找Access中某表是否存在的小技巧
- Window Media Player 播放器
- Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
- ASP.NET中图片显示方法实例
- 动态ItemTemplate的实现(译) - item,template
- php实现将wav文件转换成图像文件并在页面中显示的方法
- js仿微信公众平台打标签功能
- Python ldap实现登录实例代码
- html小技巧之td,div标签里内容不换行
- KindEditor 编辑器 v3.5.1 修改版
- jQuery移动端图片上传组件
- 浅谈Ruby on Rails的国际化
- 重命名SQLServer数据库的方法
- Ubuntu 14.04下mysql安装配置教程
- 用js实现的模拟jquery的animate自定义动画(2.5K)
- javascript数组遍历的方法实例分析
- FTP 常用命令 使用说明
- Java操作Ant压缩和解压文件及批量打包Anroid应用
- HTML中使用python屏蔽一些基本功能的方法
- Android开发之弹出软键盘工具类简单示例