अरे, मैं एक PHP फ़ंक्शन के साथ काम कर रहा था जो कई तर्क लेता है और उन्हें स्वरूपित करता है। वर्तमान में, मैं कुछ इस तरह के साथ काम कर रहा हूँ:PHP सभी तर्कों को सरणी के रूप में प्राप्त करें?
function foo($a1 = null, $a2 = null, $a3 = null, $a4 = null){
if ($a1 !== null) doSomethingWith($a1, 1);
if ($a2 !== null) doSomethingWith($a2, 2);
if ($a3 !== null) doSomethingWith($a3, 3);
if ($a4 !== null) doSomethingWith($a4, 4);
}
लेकिन अगर मैं इस तरह एक समाधान का उपयोग कर सकते मैं सोच रहा था:
function foo(params $args){
for ($i = 0; $i < count($args); $i++)
doSomethingWith($args[$i], $i + 1);
}
लेकिन फिर भी समारोह उसी तरह, के लिए इसी तरह आह्वान सी # में कीवर्ड या जावास्क्रिप्ट में तर्क सरणी पैरामीटर।
एक पकड़ लिया; आप इसे किसी अन्य फ़ंक्शन कॉल में पास नहीं कर सकते हैं। – Rob
@Rob यदि आप '$ args = func_get_args()' और फिर 'call_user_func_array ($ func, $ args)' – alex
func_get_args() केवल उन पैरामीटर के मान लौटाते हैं जो फ़ंक्शन कॉल पर PASSED थे, सभी पैराम परिभाषित नहीं हैं समारोह परिभाषा में। –