本文实例讲述了PHP使用反射机制实现查找类和方法的所在位置。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
|
//参数1是类名,参数2是方法名
$func = new ReflectionMethod( 'UnifiedOrder_pub' , 'getPrepayId' );
//从第几行开始
$start = $func ->getStartLine() - 1;
//从第几行结束
$end = $func ->getEndLine() - 1;
//获取路径地址
$filename = $func ->getFileName();
|
下面是摘抄的示例代码比较全面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?php
function a() {
}
class b {
public function f() {
}
}
function function_dump( $funcname ) {
try {
if ( is_array ( $funcname )) {
$func = new ReflectionMethod( $funcname [0], $funcname [1]);
$funcname = $funcname [1];
} else {
//这个应该是当只有一个参数的时候就看做是本类的发放吧,大概,自行百度
$func = new ReflectionFunction( $funcname );
}
} catch (ReflectionException $e ) {
echo $e ->getMessage();
return ;
}
$start = $func ->getStartLine() - 1;
$end = $func ->getEndLine() - 1;
$filename = $func ->getFileName();
echo "function $funcname defined by $filename($start - $end)\n" ;
}
function_dump( 'a' );
function_dump( array ( 'b' , 'f' ));
$b = new b();
function_dump( array ( $b , 'f' ));
?>
|
希望本文所述对大家PHP程序设计有所帮助。