ให้บอกว่าClassOne
ถูกกำหนดเป็น:
public class ClassOne
{
protected $arg1;
protected $arg2;
//Contructor
public function __construct($arg1, $arg2)
{
$this->arg1 = $arg1;
$this->arg2 = $arg2;
}
public function echoArgOne
{
echo $this->arg1;
}
}
ใช้ PHP รีเฟลคชั่น
$str = "One";
$className = "Class".$str;
$class = new \ReflectionClass($className);
สร้างอินสแตนซ์ใหม่:
$instance = $class->newInstanceArgs(["Banana", "Apple")]);
เรียกวิธีการ:
$instance->echoArgOne();
//prints "Banana"
ใช้ตัวแปรเป็นวิธีการ:
$method = "echoArgOne";
$instance->$method();
//prints "Banana"
การใช้รีเฟลคชั่นแทนการใช้สตริงดิบเพื่อสร้างออบเจ็กต์ช่วยให้คุณควบคุมออบเจ็กต์ของคุณได้ดีขึ้นและทดสอบได้ง่ายขึ้น (PHPUnit ต้องอาศัยรีเฟลคชันมาก)