PHP call_user_func_array ile kurucusunu çağırmak için nasıl

1 Cevap php

Nasıl call_user_func_array ile bir sınıfın yapıcı diyebiliriz

Bunu yapmak mümkün değildir:

$obj = new $class();
call_user_func_array(array($obj, '__construct'), $args); 

yapıcı parametreleri varsa, new başarısız olur çünkü.

Kısıtlama: Ben örneğini zorunda sınıfları kontrol etmiyoruz, ne de ben onları değiştirebilirsiniz yok.

Ben bu çılgın bir şey yapmak istiyorum neden bana sormayın, bu çılgın bir testtir.

1 Cevap

Kullanmak reflection gibi yapabilirsiniz:

$reflect  = new ReflectionClass($class);
$instance = $reflect->newInstanceArgs($args);

PHP 5.6.0 itibariyle ... operatör de bu amaçla kullanılabilir.

$instance = new $class(...$args);