Python, paketi olabilir ve böylece gibi argümanlar açmak:
def myfunction(arg1, arg2, arg3):
pass
mydict = dict(arg1='foo', arg2='bar', arg3='baz')
myfunction(**mydict)
mylist = ['foo', 'bar', 'baz']
myfunction(*mylist)
Şimdi, PHP benzer bir şey var mı? Ben bir veritabanı kaydının çıkarılan bir ilişkisel dizi ile birlikte, bir işleve geçirilen bir sınıf var. Ben dizide tuşları olarak adlandırılır aynı argümanları kabul sınıfının bir örneğini oluşturmak istiyorum. Bu yapılabilir mi?
EDIT
Tamam, bu yüzden kesinlikle doğru sorumu formüle vermedi. Ben sınıf adını, ne de önceden argümanların sayısını ne biliyorsanız ben dinamik olarak yeni bir sınıf örneğini istedi.
Ama cevap bulduk:
http://php.net/manual/en/book.reflection.php
Buradan bir çözüm var:
class MyClass {
public function __construct($var1, $var2, $var3) {
echo "$var1\n";
echo "$var2\n";
echo "$var3\n";
}
}
$reflector = new ReflectionClass('MyClass');
$args = array('var1'=>'foo', 'var2'=>'baz', 'var3'=>'bar');
$instance = $reflector->newInstanceArgs($args);