2011-08-22 14 views
6

मैं कैसे एक समारोह उदाहरणPHP अज्ञात पैरामीटर के साथ एक फ़ंक्शन लिख रहा है?

function echoData (parameter1, parameter2,) { 
    //do something 
} 

के लिए, मापदंडों के एक अज्ञात संख्या के साथ php में लिखने के बारे में जाना होगा लेकिन जब आप फ़ंक्शन को कॉल करें आप का उपयोग कर सकते हैं:

echoData('hello', 'hello2', 'hello3', 'hello'4); 

ताकि अधिक पैरामीटर कर सकते हैं पैरामीटर की संख्या के रूप में भेजा जाएगा अज्ञात होगा।

+2

पैरामीटर की असीमित संख्या के साथ [PHP फ़ंक्शन का संभावित डुप्लिकेट] (http://stackoverflow.com/questions/1577383/php-function-with- असीमित- संख्या-of-parameters) और [क्या एक PHP फ़ंक्शन एक स्वीकार कर सकता है पैरामीटर की असीमित संख्या?] (http://stackoverflow.com/questions/3078454/can-a-php-function-accept-an- असीमित- संख्या-of-parameters) –

उत्तर

11

func_get_args()

function echoData(){ 
    $args = func_get_args(); 
} 

मालूम है कि आप यह कर सकते हैं, जबकि, आप समारोह घोषणा में किसी भी तर्क को परिभाषित नहीं किया जाना चाहिए आप func_get_args() का उपयोग करने जा रहे हैं - क्योंकि यह करता है, तो बहुत भ्रमित हो जाता है/जब परिभाषित तर्कों की किसी भी तर्क के बारे में छोड़े गए हैं

इसी प्रकार के कार्यों

  • func_get_arg()
  • $args = func_get_args(); 
    

    इसके बाद आप सरणी का उपयोग करें या इस पर पुनरावृति, जो कुछ भी सूट कर सकते हैं:

  • func_get_args()
  • func_num_args()
+0

ध्यान रखें कि जब आप इसे कर सकते हैं, तो आप यदि आप 'func_get_args()' का उपयोग करने जा रहे हैं, तो फ़ंक्शन घोषणा में किसी भी तर्क को परिभाषित नहीं करना चाहिए - केवल इसलिए कि जब यह परिभाषित तर्कों में से कोई भी छोड़ा जाता है तो यह बहुत भ्रमित हो जाता है। – DaveRandom

+0

@ डेव: अच्छा पकड़ो। मैं इसे अपने उत्तर में जोड़ दूंगा – genesis

2

उपयोग func_get_args() की तरह सभी मापदंडों की एक सरणी पुनः प्राप्त करने के आपका उपयोग-मामला सबसे अच्छा है।

0

तुम भी एक सरणी का उपयोग कर सकते हैं:

<?php  
function example($args = array()) 
{ 
    if (isset ($args["arg1"])) 
     echo "Arg1!"; 
} 

example(array("arg1"=>"val", "arg2"=>"val")); 
8
बस जो लोग गूगल पर इस सूत्र पाया के लिए

In PHP 5.6 and above you can use ... मापदंडों के अज्ञात संख्या निर्दिष्ट करने के लिए:

function sum(...$numbers) { 
    $acc = 0; 
    foreach ($numbers as $n) { 
     $acc += $n; 
    } 
    return $acc; 
} 

echo sum(1, 2, 3, 4); // 10 

$numbers तर्क की एक सरणी है।

संबंधित मुद्दे