2024 年日本 PHP 研討會

Reflection 類別

(PHP 5, PHP 7, PHP 8)

簡介

反射類別。

類別概要

類別 Reflection {
/* 方法 */
公開 靜態 匯出(Reflector $reflector, 布林值 $return = false): 字串
公開 靜態 取得修飾子名稱(整數 $modifiers): 陣列
}

目錄

新增註記

使用者貢獻的註記 1 則註記

apmithani at yahoo dot com
14 年前
以下是一段程式碼片段,適用於剛開始接觸反射機制的使用者。我有一個簡單的類別,包含兩個屬性和兩個方法。我們將使用反射類別動態地填入屬性,然後印出它們。

<?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++;
}

?>
To Top