Ben Reflection API kullanarak bir fonksiyon çağırmak zorunda. Işlevi, isteğe bağlı parametreleri vardır, ve ben sadece bazı bunların sağlanması çağırmak gerekir.
Örneğin, ben bu işlevi vardır:
public function doSomething($firstParam, $secondParam = "default", $thirdParam = "default)
Ve ben bir değer ayarlamak için ihmal argümanları temsil eden bir değerler dizisi geçirerek, invokeArgs()
doSomething()
çağırmak için kullanıyorum isteğe $secondParam
:
$parameters = array("firstParam"=>"value", "thirdParam"=>"thirdValue");
$reflectedDoSomething->invokeArgs($instance, $parameters);
Burada ne olur invokeArgs()
$secondParam
, şimdi değerli "thirdValue" atlama ve atlama olmadan, arka arkaya parametrelerini ayarlayarak yöntemini çağırır olduğunu $thirdParam
. Ve bu mantıksal olarak doğru değil. Yöntemi doSomething("value", "thirdValue")
gibi çağrılır.
Ne burada yapmak istiyorum varsayılan değeri kullanmak için $secondParam
zorlamaktır. null
, bir değerdir, çünkü $parameters
dizi "secondParam" => null
ayarlama bir çözüm değildir.
O Yansıma kullanarak Possibile mı?
Teşekkürler