PHP的反射(Reflection)API 提供了一种在运行时获取类和对象信息的能力,包括类的方法、属性、接口等。这对于动态分析、构建IDE的自动完成功能、或者进行复杂的元编程非常有用。以下是如何使用PHP反射API进行动态分析的示例代码。
1. 反射类(ReflectionClass)
ReflectionClass
类报告关于类的信息。
<?php
class MyClass {
public $publicProperty = 'I am public';
protected $protectedProperty = 'I am protected';
private $privateProperty = 'I am private';
public function myPublicMethod() {
echo 'This is a public method.';
}
protected function myProtectedMethod() {
echo 'This is a protected method.';
}
private function myPrivateMethod() {
echo 'This is a private method.';
}
}
// 使用反射API获取MyClass的信息
$reflectionClass = new ReflectionClass('MyClass');
// 获取类的属性
$properties = $reflectionClass-&