本文实例讲述了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程序设计有所帮助。