2012-08-09 33 views
6

phpDocumentor के लिए इस विधि के रिटर्न प्रकार को दस्तावेज करने का सही तरीका निम्न में से कौन सा है?phpDocumentor के लिए सरणी डेटा प्रकार को इंगित करने का सही तरीका?

विधि 1:

/** 
* @return array Foo array. 
*/ 
public function foo() { 
    return array(1, 2, 3); 
} 

विधि 2:

/** 
* @return integer[] Foo array. 
*/ 
public function foo() { 
    return array(1, 2, 3); 
} 

इसके अलावा, वहाँ किसी भी विधि से किसी भी आईडीई निहितार्थ हैं?

संपादित करें:

यह दोनों PhpStorm और Netbeans 7.1+ IDEs का समर्थन करने वाले 2 विधि प्रकट होता है।

उत्तर

11

दोनों ही तरीकों से तकनीकी रूप से सही हैं, लेकिन यह एक 'बेहतर' है क्योंकि यह अधिक विशिष्ट (int और integer परस्पर विनिमय कर रहे हैं) माना जाता है:

@return int[] 

यहाँ प्रलेखित:

http://www.phpdoc.org/docs/latest/guides/types.html

+0

लिंक के लिए धन्यवाद! मुझे विश्वास नहीं है कि मुझे यह याद आया। मैं इसे सही उत्तर के रूप में चिह्नित करना चाहता हूं, सिवाय इसके कि खंड 1.4.4 बताता है कि जो भी वाक्यविन्यास मैंने सूचीबद्ध किया है वह सही है, जहां आपका उत्तर केवल दूसरा निर्दिष्ट करता है सही है (हालांकि दूसरा निश्चित रूप से सबसे उपयोगी है, IMHO)। – FtDRbwLXw6

+0

दोनों सही हैं, लेकिन यह एक 'बेहतर' माना जाता है क्योंकि यह अधिक विशिष्ट है। int/integer हालांकि परिवर्तनीय हैं। – Evert

+0

@drrcknlsn: मैं इस तथ्य की सराहना करता हूं कि आपने संपादन करने का समय लिया है। – Evert

4

पर इस उत्तर को लिखने का क्षण, ये phpDocumentor (और शायद अन्य PHPDoc कार्यान्वयन) के स्वीकृत तरीके हैं: एक सरणी को इंगित करने के लिए:

  1. अनिर्दिष्ट, का प्रतिनिधित्व किया सरणी की सामग्री की कोई परिभाषा दिया है। उदाहरण: @return array

  2. एक प्रकार, Type परिभाषा प्रत्येक सरणी तत्व के प्रकार के पाठक को सूचित युक्त निर्दिष्ट। केवल Type किसी दिए गए सरणी के लिए तत्व के रूप में अपेक्षित है। उदाहरण: @return int[]

    कृपया ध्यान दें कि mixed भी एक ही प्रकार है और इसी कीवर्ड के साथ यह संकेत मिलता है कि प्रत्येक सरणी तत्व किसी भी संभव प्रकार हैं संभव है।

  3. कई प्रकार के युक्त निर्दिष्ट, Type परिभाषा प्रत्येक सरणी तत्व के प्रकार के पाठक को सूचित। प्रत्येक तत्व दिए गए प्रकारों के का हो सकता है। उदाहरण: @return (int|string)[]