利用反射ReflectionClass類可以查看類的屬性和方法。下面是一個示例:
class MyClass {
public $property1 = 'value1';
private $property2 = 'value2';
public function method1() {
echo 'This is method1';
}
private function method2() {
echo 'This is method2';
}
}
$reflectionClass = new ReflectionClass('MyClass');
// 獲取類的所有屬性
$properties = $reflectionClass->getProperties();
foreach ($properties as $property) {
echo $property->getName() . "\n";
}
// 獲取類的所有方法
$methods = $reflectionClass->getMethods();
foreach ($methods as $method) {
echo $method->getName() . "\n";
}
上面的代碼首先創建了一個MyClass類,然后使用ReflectionClass類來獲取該類的所有屬性和方法。通過調用ReflectionClass的getProperties方法可以獲取類的所有屬性,并使用getName方法獲取屬性的名稱。同樣,通過調用getMethods方法可以獲取類的所有方法,并使用getName方法獲取方法的名稱。
注意:ReflectionClass類可以獲取公共、私有、受保護的屬性和方法。如果要獲取私有屬性和方法,需要在調用getProperties和getMethods方法前先調用setAccessible(true)設置可訪問性。