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的反射机制
1. 介绍 -- PHP5添加了一项新的功能:Reflection.这个功能使得phper可以reverse-engineer class, interface,function,method and extension.通过PHP代码,就可以得到某object的所有信息,并且可以和它交互. -- 反射是什么? 它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类.方法.属性.参数等的详细信息,包括注释.这种动态获取的信息以及动态调用对象的方法的功能称为反射API.反射是操纵面向对象
-
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使用反射机制实现查找类和方法的所在位置
本文实例讲述了PHP使用反射机制实现查找类和方法的所在位置.分享给大家供大家参考,具体如下: //参数1是类名,参数2是方法名 $func = new ReflectionMethod('UnifiedOrder_pub', 'getPrepayId'); //从第几行开始 $start = $func->getStartLine() - 1; //从第几行结束 $end = $func->getEndLine() - 1; //获取路径地址 $filename = $func->get
-
PHP反射机制原理与用法详解
本文实例讲述了PHP反射机制原理与用法.分享给大家供大家参考,具体如下: 反射 面向对象编程中对象被赋予了自省的能力,而这个自省的过程就是反射. 反射,直观理解就是根据到达地找到出发地和来源.比如,一个光秃秃的对象,我们可以仅仅通过这个对象就能知道它所属的类.拥有哪些方法. 反射是指在PHP运行状态中,扩展分析PHP程序,导出或提出关于类.方法.属性.参数等的详细信息,包括注释.这种动态获取信息以及动态调用对象方法的功能称为反射API. 如何使用反射API <?php class person{
-
PHP基于反射机制实现插件的可插拔设计详解
本文实例讲述了PHP基于反射机制实现插件的可插拔设计.分享给大家供大家参考,具体如下: 说PHP和ASP等同的朋友们可以就此打住了,PHP支持反射,而且还是非常的强大.好了,我们开始今天的话题. 功能描述: 页面拥有一个主导航菜单,里头有默认连接若干. 插件统一存放在一个目录,插件载入后会自动在导航菜单中增加上自己所需的链接. 插件载入时可执行一定的操作. 动态增删插件无需改动代码. 最终效果: 首页,插件1,插件2 "首页"是系统自带的菜单项."插件1"和&quo
-
详解php中反射的应用
反射是在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类.方法.属性.参数等的详细信息,包括注释.这种动态获取的信息以及动态调用对象的方法的功能称为反射API.反射是操纵面向对象范型中元模型的API,其功能十分强大,可帮助我们构建复杂,可扩展的应用. 其用途如:自动加载插件,自动生成文档,甚至可用来扩充PHP语言. php反射api由若干类组成,可帮助我们用来访问程序的元数据或者同相关的注释交互.借助反射我们可以获取诸如类实现了那些方法,创建一个类的实例(不同于用new创建),调用一个方
-
PHP反射机制用法实例
本文实例讲述了PHP反射机制的用法,分享给大家供大家参考之用.具体方法如下: 演示示例代码如下所示: <?php class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function __construct() { $this->target[] = new ClassOne(); } function
-
PHP类的反射用法实例
本文实例讲述了PHP类的反射用法.分享给大家供大家参考.具体实现方法如下: 该例实现对于每个频道获取相应的类来执行相应的操作.具体如下: 复制代码 代码如下: foreach($this->chs as $ch) { $className = $this->chsMap[$ch]; if($className) { // 如果是合法的类名 // 获取反射类 $class = new ReflectionClass($className); // 获取类的方法 $recd =
-
解析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 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的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 反射(Reflection)使用实例
PHP Reflection是用于获取类.扩展.方法.函数.对象.参数.属性的详细信息. ReflectionClass类获取类相关信息,如获取属性.方法.文档注释等. <?php class Person { /** * For the sake of demonstration, we"re setting this private */ private $_allowDynamicAttributes = false; /** type=primary_autoincrement *
随机推荐
- mysql修改表结构方法实例详解
- jQuery页面加载初始化的3种方法(推荐)
- JavaScript 构造函数 面相对象学习必备知识
- win2003 WScript.shell与Shell组件安全篇
- php如何调用webservice应用介绍
- ASP,vbs正则轮翻在文章段落后加上网址等内容
- 分享几个Android开发有用的程序代码
- Javascript 自适应高度的Tab选项卡
- 一个用js实现控制台控件的代码
- jquery中的ajax如何返回结果而非回调方式即为同顺序执行
- VBScript 常用函数总结
- JavaScript打开客户端exe文件的代码
- JavaScript中重名的函数与对象示例详析
- ln命令的用法
- Eclipse打开时“发现了以元素'd:skin'”开头的无效内容。此处不应含有子元素的解决方法
- WinForm 自动完成控件实例代码简析
- 图书管理程序(一)
- C#调用WinRar执行rar、zip压缩的方法
- Android仿活动时分秒倒计时效果
- 详解vue.js根据不同环境(正式、测试)打包到不同目录