別のクラスのインスタンス内から引数を使用してクラスをインスタンス化する必要がある状況にいます。プロトタイプは次のとおりです。
//test.php
class test
{
function __construct($a, $b, $c)
{
echo $a . '<br />';
echo $b . '<br />';
echo $c . '<br />';
}
}
ここで、以下のクラスのcls関数を使用して、上記のクラスをインスタンス化する必要があります。
class myclass
{
function cls($file_name, $args = array())
{
include $file_name . ".php";
if (isset($args))
{
// this is where the problem might be, i need to pass as many arguments as test class has.
$class_instance = new $file_name($args);
}
else
{
$class_instance = new $file_name();
}
return $class_instance;
}
}
引数を渡しながらテストクラスのインスタンスを作成しようとすると:
$myclass = new myclass;
$test = $myclass->cls('test', array('a1', 'b2', 'c3'));
エラーが発生します:引数1と2がありません。最初の引数のみが渡されます。
コンストラクター関数に引数を持たないクラスをインスタンス化すると、これはうまく機能します。
経験豊富な PHP 開発者にとって、上記は大きな問題にはなりません。助けてください。
ありがとう