2012-05-14 15 views
12

के रूप में PHP बंद होने पर तर्क एक PHP तर्क बंद होने पर डिफ़ॉल्ट तर्क मान निर्दिष्ट करना संभव होगा? पसंद:वैकल्पिक फंक्शन तर्क

public function getCollection($filter = function($e) { return $e; }) 
{ 
    // Stuff 
} 

क्या मुझे कुछ याद आ रहा है (शायद एक अलग वाक्यविन्यास?) या यह बिल्कुल संभव नहीं है? बेशक मुझे पता है मैं क्या कर सकते हैं:

public function getCollection($filter = null) 
{ 
    $filter = is_callable($filter) ? $filter : function($e) { return $e; }; 
    // Stuff 
} 

(नोट: मैं ऊपर कोड का परीक्षण नहीं किया है)

उत्तर

14

Default arguments केवल "अदिश तर्क", सरणियों, या शून्य हो सकता है।

"scalar values" PHP में संख्याएं, तार और बूलियन हैं।

यदि आप एक फ़ंक्शन को डिफ़ॉल्ट तर्क मानना ​​चाहते हैं, तो आपको दूसरे तरीके का उपयोग करने की आवश्यकता होगी, पहला वाक्यविन्यास त्रुटि है।

+0

ओह, मैं देखता हूं। तो मेरा सवाल बेकार है। फिर भी धन्यवाद। – gremo

+1

@Gremo: यह एक बेकार सवाल नहीं है, यह एक अच्छा सवाल है। अन्य एक ही बात सोच रहे होंगे :-) –

+1

सहमत हुए। मैं एक PHP देव हूँ लेकिन अभी भी यह दिलचस्प पाया है। – Madbreaks

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