php - How to use default parameter value in a nested call? -
i have situation: function a (a class method, it's not important, here...) invokes function b.
function a has 1 parameter (say, $p2), default value.
function b has 1 parameter (say, $q2), default value, too.
if function a called without parameter $p2, function b should called without parameter $q2, too, force using it's default value.
if function a called with parameter $p2, function b should called with parameter $q2.
to clearify example:
function a($p1, $p2 = "default value one") { if ($p2 === "default value") { b($p1); } else { b($p1, $p2); } } function b(q1, q2 = "default value two") { ... } of course it's possible use test, in example above, looks me ugly solution... question is:
is there better (faster, cleaner, smarter) code implement use case?
i think should you're looking for:
just function arguments func_get_args(), call next function call_user_func_array().
function a($p1, $p2 = "default value") { call_user_func_array("b", func_get_args()); }
Comments
Post a Comment