Hãy nói ClassOne
được định nghĩa là:
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;
}
}
Sử dụng phản xạ PHP;
$str = "One";
$className = "Class".$str;
$class = new \ReflectionClass($className);
Tạo một sơ thẩm mới:
$instance = $class->newInstanceArgs(["Banana", "Apple")]);
Gọi một phương thức:
$instance->echoArgOne();
//prints "Banana"
Sử dụng một biến như một phương thức:
$method = "echoArgOne";
$instance->$method();
//prints "Banana"
Sử dụng Reflection thay vì chỉ sử dụng chuỗi thô để tạo đối tượng giúp bạn kiểm soát tốt hơn đối tượng của mình và khả năng kiểm tra dễ dàng hơn (PHPUnit phụ thuộc rất nhiều vào Reflection)