PHP yansıma ve invokeArgs (): varsayılan değer kullanmak için bir parametre zorluyor

0 Cevap php

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

0 Cevap