PHP: Wie man eine Klasse mit Argumenten aus einer anderen Klasse instanziiert

Ich bin in einer Situation, in der ich eine Klasse mit Argumenten aus einer Instanz einer anderen Klasse instanziieren muss. Hier ist der Prototyp:

//test.php

class test
{
    function __construct($a, $b, $c)
    {
        echo $a . '<br />';
        echo $b . '<br />';
        echo $c . '<br />';
    }
}

Jetzt muss ich über der Klasse instanziieren, indem ich unter der Klasse bincls Funktion:

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

Wenn ich jetzt versuche, eine Instanz der Testklasse zu erstellen, während ich Argumente an sie übergebe:

$myclass = new myclass;
$test = $myclass->cls('test', array('a1', 'b2', 'c3'));

Es gibt Fehler: Fehlendes Argument 1 und 2; Es wird nur das erste Argument übergeben.

Dies funktioniert gut, wenn ich eine Klasse instanziiere, die keine Argumente in ihrer Konstruktorfunktion hat.

Für erfahrene PHP-Entwickler dürfte dies kein großes Problem sein. Bitte helfen Sie.

Vielen Dank

Antworten auf die Frage(5)

Ihre Antwort auf die Frage