在 PHP 中,您可以使用反射類(ReflectionClass)來獲取類的屬性和相關信息。以下是一個簡單的示例,說明如何使用 ReflectionClass 獲取類的屬性:
<?php
class MyClass {
public $property1;
protected $property2;
private $property3;
}
// 創建一個 ReflectionClass 對象
$reflectionClass = new ReflectionClass('MyClass');
// 獲取類中的所有公共屬性
$publicProperties = $reflectionClass->getProperties(ReflectionProperty::IS_PUBLIC);
foreach ($publicProperties as $property) {
echo "Public property: " . $property->getName() . "\n";
}
// 獲取類中的所有受保護屬性
$protectedProperties = $reflectionClass->getProperties(ReflectionProperty::IS_PROTECTED);
foreach ($protectedProperties as $property) {
echo "Protected property: " . $property->getName() . "\n";
}
// 獲取類中的所有私有屬性
$privateProperties = $reflectionClass->getProperties(ReflectionProperty::IS_PRIVATE);
foreach ($privateProperties as $property) {
echo "Private property: " . $property->getName() . "\n";
}
?>
在這個示例中,我們首先定義了一個名為 MyClass
的類,其中包含三個屬性:$property1
(公共屬性)、$property2
(受保護屬性)和$property3
(私有屬性)。
然后,我們創建了一個 ReflectionClass
對象,分別使用 getProperties()
方法和 ReflectionProperty::IS_PUBLIC
、ReflectionProperty::IS_PROTECTED
和 ReflectionProperty::IS_PRIVATE
常量來獲取類中的公共屬性、受保護屬性和私有屬性。最后,我們遍歷這些屬性并輸出它們的名稱。