JetBrains WebIDE: PHP चर प्रकार संकेत?


81

क्या वेबाइड को इंगित करने का एक तरीका है कि एक चर का कोई प्रकार है? मुझे वस्तुओं की एक सरणी को पुनरावृत्त करना है, और कोई भी ऑटो-पूर्ति उपलब्ध नहीं है। यह ZendStudio में मदद करता है:

/* @var ClassName $object */

मुझे पता है कि JetBrains में वस्तुओं की एक सरणी घोषित करने के लिए एक विशेषता है:

/**
 * @return ClassName[]
 */

लेकिन यह केवल फ़ंक्शन के रिटर्न प्रकार के साथ काम करता है।


यह सरणियों के साथ काम करता है। क्या यह ArrayIterators के साथ काम करता है जो एक विशिष्ट प्रकार पर पुनरावृति करता है?
Redestructa

जवाबों:


144

/* @var ClassName $object */एक गैर-वैध PHPDOC टिप्पणी है और वेब IDE के वर्तमान संस्करण में पार्स नहीं किया गया है। इसे काम करने के लिए डबल तारांकन का उपयोग करें:

/** @var ClassName $object */

इसके अलावा, आप टिप्पणी कर सकते हैं $arrayमें foreach($array as $var)से /** @var ClassName[] $array */और $varटाइप स्वचालित रूप से निष्कर्ष निकाला की जाएगी।


वर्ग कोष्ठक संकेतन के बारे में नहीं पता था
SandorRacz

2
संबंधित प्रश्न: मेरा PHP वर्ग एक चर के लिए जादू गटर का उपयोग करता है और मैं उस गटर चर को कक्षा वस्तु में बाँधना चाहता हूँ, किसी भी विचार को कैसे करना है? जैसा कि मैं अपनी कक्षा में चर को परिभाषित नहीं कर सकता।
साकेत साहू

वाह .. बस मज़े के लिए गुहार लगाई और वास्तव में कोई उम्मीद नहीं कि यह वास्तव में एक बात होगी .. मैं अपने जीवन में कभी भी गलत नहीं था और मुझे खुशी है कि मैं गलत था! यह सुविधा बहुत अच्छी है, धन्यवाद! :)
कागेटे उलुबाय

29

जैसा कि पहले ही बताया गया है, PhpStorm नियमित phpdoc ब्लॉकों का उपयोग करेगा:

/** @var ClassName $object */

हालाँकि, 2.1 के बाद से यह नेटबीन्स / एक्लिप्स / ज़ेंड @वर एनोटेशन का भी समर्थन करता है :

/* @var $object ClassName */

कृपया ध्यान दें कि टिप्पणी /*इसके बजाय शुरू होती है /**(इस प्रकार यदि आप phpdoc के साथ वास्तविक प्रलेखन उत्पन्न करते हैं तो यह दिखाई नहीं देगा)। इसके अलावा, तर्क की अदला-बदली की जाती है, हालांकि PhpStorm किसी भी आदेश को स्वीकार करता है:

/* @var ClassName $object */

अंतिम लेकिन कम से कम, वे कोड की लगभग किसी भी मनमानी लाइन (तकनीकी रूप से, phpdoc ब्लॉक कुछ वस्तुओं तक सीमित हैं) से पहले कर सकते हैं।


संपादित करें: 2019 तक, नेटबीन्स / एक्लिप्स / ज़ेंड @var एनोटेशन ज्यादातर परित्याग करने लगते हैं। NetBeans 11 अब उनका समर्थन नहीं करता है और सामान्य रूप से वे अन्य IDE द्वारा समर्थित नहीं होते हैं। मैं अन्य वाक्यविन्यास का उपयोग करने का सुझाव देता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.