2009-09-07 17 views
15

के लिए रिटर्न प्रकार संकेत निर्दिष्ट करें विधि के लिए रिटर्न प्रकार संकेत निर्दिष्ट करने के लिए मेरे लिए सही वाक्यविन्यास क्या है?PHP विधि

उदाहरण के लिए, मैं इस तरह के एक विधि है:

private static function ConstructPDOObject($dbname) 
{ 
     $hostname =self::HOSTNAME; 
     $username = self::USERNAME; 
     $password = self::PASSWORD; 
     $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password); 
     return $dbh; 
} 

और मैं चाहता हूँ, जब भी मैं उपरोक्त विधि फोन, आईडीई मुझे पीडीओ के लिए तरीके दिखाएगा।

प्रकार संकेत कैसे जोड़ें?

उत्तर

23
Aptana भीतर

, PDT, Zend Studio और इस प्रकार आप php तरीकों के प्रकार हिंट जोड़ सकते हैं अन्य आईडीई के:

/** 
* Constructs a new PDO Object and returns it 
* 
* @param string $dbname name of the database to connect to 
* @return PDO connection to the database 
*/ 
private static function ConstructPDOObject($dbname) 
{ 
     $hostname =self::HOSTNAME; 
     $username = self::USERNAME; 
     $password = self::PASSWORD; 
     $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password); 
     return $dbh; 
} 

वर्ग के नाम प्रलेखन ब्लॉक के @return विशेषता दर्शाता है के बाद रखा गया है विधि का वापसी प्रकार। जैसे आपकी उदाहरण विधि के मामले में, पीडीओ वह क्लास नाम है जो लौटाया जाता है। अतिरिक्त विवरण "डेटाबेस से कनेक्शन" का उपयोग अन्य डेवलपर्स को लौटाए गए मूल्य का सार्थक विवरण प्रदान करने के लिए किया जाता है, इसकी आवश्यकता नहीं है लेकिन सलाह दी जाती है।

इस तरह से अपने PHP तरीकों को दस्तावेज करने के बारे में महान चीजों में से एक यह है कि आप phpDocumentor या doxygen का उपयोग करके दस्तावेज़ उत्पन्न कर सकते हैं।

+1

के लिए Thx मैं ग्रेविटन के समान प्रश्न के साथ आ रहा था: आपका उत्तर आईडीई कोड विश्लेषण क्षमताओं का उपयोग कर एक वर्कअराउंड है, न कि PHP विनिर्देश। वैसे भी, +1 क्योंकि यह काम करता है। – Benj

+0

आप लौटने से पहले इसे प्री-कास्टिंग द्वारा रिटर्न प्रकार की जांच कर सकते हैं, लेकिन यह केवल तभी जांचता है जब लौटाया गया परिणाम निर्दिष्ट प्रकार पर डाला जा सकता है। देखें [php.net/manual/en/language.types.type-juggling.php] (StackOverflow उपयोगकर्ता DhruvPathak के लिए धन्यवाद) – Benj

5

PHP रिटर्न प्रकारों पर प्रकार संकेत देने का समर्थन नहीं करता है। शायद आपको रिटर्न प्रकार घोषित करने वाला एक दस्तावेज ब्लॉक जोड़ना चाहिए और शायद आपका आईडीई इसे उठाएगा (मुझे नहीं पता कि यह होगा या नहीं)।

+0

NetBeans 8.1 के साथ पुष्टि की है! सुराग – CHaP

4

आईडीई हिंट टिप्पणियों के माध्यम से किया जाता है। यहां मेरे ज़ेंड फ्रंट प्लगइन्स में से एक उदाहरण है।

<?php 

/** 
* Initializes Application wide authentication 
* 
* @author Lance Rushing 
* @since 2009-06-01 
* @param Zend_Session $session 
* @return Zend_Auth <--- gives IDE Hint 
*/ 
protected function initAuth($session) 
{ 
    $auth = Zend_Auth::getInstance(); 
    require_once 'AuthStorage.php'; 
    $auth->setStorage(new My_AuthStorage($session)); 
    return $auth; 
} 
17

भविष्य में संदर्भ के लिए, यह के लिए पीएचपी 7 कार्यान्वित किया जाता है, निम्न सिंटैक्स (स्रोत से उद्धृत) के साथ:

function foo(): array { 
    return []; 
} 

पीएचपी 7 के रूप में अब आपके प्रश्न का उत्तर करने के लिए, (2015 के अंत के आसपास जारी किया) तुम क्या करने में सक्षम हो जाएगा निम्नलिखित (एक उदाहरण के रूप में):

<?php 

function ConstructPDOObject($hostname, $dbname, $username, $password): PDO 
{ 
    $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password); 
    return $dbh; 
} 

विनिर्देश भी भीतर और इंटरफेस के खिलाफ प्रकार हिंट करने के लिए अनुमति देता है; हम में से उन लोगों के लिए जो सोलिड सिद्धांतों का पालन करने में रूचि रखते हैं।

स्रोत और अधिक जानकारी: https://wiki.php.net/rfc/return_types

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