आप func_get_args
का उपयोग कर सकते हैं। उदाहरण:
function foo($optional=null) {
if (count(func_get_args()) > 0)
echo "optional given\n";
else
echo "optional not given\n";
}
foo(); //optional not given
foo(null); //optional given
नोट आंतरिक पीएचपी कार्यों के लिए इस्तेमाल किया सम्मेलन हमेशा वैकल्पिक तर्क एक डिफ़ॉल्ट मान देने के लिए और उन्हें एक ही व्यवहार किया है जब दोनों तर्क नहीं दिया जाता है और उसके डिफ़ॉल्ट मान स्पष्ट रूप से दिया जाता है के लिए है। यदि आप कभी भी अन्यथा पाते हैं, तो एक बग रिपोर्ट दर्ज करें। बिना if
रों इस तरह यह आइए सामान आप करते हैं:
function strpos_wrap($haystack, $needle, $offset = 0) {
return strpos($haystack, $needle, $offset);
}
यह सम्मेलन अधिक लागू की जाती है कठिनाई यह है कि आप इस सवाल का नेतृत्व आप से पता चला है के रूप में, userland है। यदि सम्मेलन आपकी आवश्यकताओं के अनुरूप नहीं है, तो कम से कम अपने दृष्टिकोण पर पुनर्विचार करें। func_num_args
/func_get_args
का उद्देश्य मुख्य रूप से चर तर्क तर्कों को अनुमति देने के लिए है।
यह एक फ़ंक्शन के व्यवहार के लिए वास्तव में एक कट्टर तरीका है। 'एफ (0)' को तर्क के 'स्रोत" के बावजूद, एक ही परिणाम का उत्पादन करना चाहिए। –
यदि आप एक पॉलिमॉर्फिक विधि नहीं बना रहे हैं जो पैरामीटर सेट होने पर एक चीज करता है और पैरामीटर सेट नहीं होने पर दूसरी बात होती है। – StackOverflowNewbie
फ्रैंक, कुछ फ़ंक्शंस में निर्मित यह करते हैं, मेरे मामले में मुझे सबस्ट्रेट को लपेटने की आवश्यकता होती है, और जब मैंने रैपर को $ लम्बाई को शून्य से घटाकर डिफ़ॉल्ट रूप से घटा दिया, तो मुझे कुछ भी वापस नहीं मिला, क्योंकि सबस्ट्रेट ने 0 लंबाई के रूप में व्याख्या की थी। हां, यह बेहद कमजोर है, मैं PHP के बेहतर कुछ भी उम्मीद करने आया हूं। –