मान लें कि 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 परावर्तन पर बहुत निर्भर करता है)