以下是一段程式碼片段,適用於剛開始接觸反射機制的使用者。我有一個簡單的類別,包含兩個屬性和兩個方法。我們將使用反射類別動態地填入屬性,然後印出它們。
<?php
class A
{
public $one = '';
public $two = '';
//建構子
public function __construct()
{
//建構子
}
//印出變數 one
public function echoOne()
{
echo $this->one."\n";
}
//印出變數 two
public function echoTwo()
{
echo $this->two."\n";
}
}
//實例化物件
$a = new A();
//實例化反射物件
$reflector = new ReflectionClass('A');
//現在將類別 A 的所有屬性放入 $properties 陣列
$properties = $reflector->getProperties();
$i =1;
//現在逐一處理 $properties 陣列並填入每個屬性
foreach($properties as $property)
{
//填入屬性
$a->{$property->getName()}=$i;
//呼叫方法以印出填入的內容
$a->{"echo".ucfirst($property->getName())}()."\n";
$i++;
}
?>