2015-03-11 15 views
8

मैं ओओपी और PHP के लिए काफी नया हूं। मैं आईडीई PhpStorm का उपयोग कर रहा हूँ और यह मुझे $width के संदर्भ में चेतावनी दे रहा है (नीचे देखें)।इस स्थिति में 'क्षेत्र घोषित गतिशील' का अर्थ क्या है?

Warning 'Field declared dynamically'

यहाँ मेरी कोड है:

<?php 
class box { 
    private $width; 

    function __construct(){ 
     $this->width = 3; 
    } 
} 
?> 

मैं शब्द "क्षेत्र" से पहले इस्तेमाल कभी नहीं देखा है, और मैं पूरी तरह से यकीन है कि क्या वाक्य "फील्ड घोषित गतिशील" का अर्थ है नहीं कर रहा हूँ ।

ऐसा लगता है कि मैंने इस चेतावनी को आज दिखाया है जब मैंने PhpStorm को अपडेट किया था। क्या मैंने कुछ गलत किया?

इसके अलावा, अगर कोई भी संक्षेप में बता सकता है कि चेतावनी का अर्थ क्या है "नोट: प्रकार" stdClass "या व्युत्पन्न वस्तुओं पर जांच नहीं की जाती है?

+0

[यह] देखें (http://blog.pepa.info/php-html-css/tools/template-undefined-field-warnings-in-phpstorm/) –

+1

धन्यवाद फ़ेलिक्स, इससे बहुत मदद मिलनी चाहिए! :) – strictlyhdmi

उत्तर

9

कृपया फ़ाइल करें। अमान्य कैश ... और आईडीई को पुनरारंभ करें - आपकी अनुक्रमणिका अद्यतन के बाद दूषित/पुरानी प्रतीत होती है।


और मैं पूरी तरह से यकीन है कि क्या वाक्य "फील्ड घोषित गतिशील" का अर्थ है नहीं कर रहा हूँ।

इसका मतलब यह है कि क्षेत्र/संपत्ति स्पष्ट रूप से घोषित नहीं किया गया है लेकिन __get() और __set() जादू तरीकों पर निर्भर करता है यह काम कर रहा है।

आपके मामले में आपके पास फ़ील्ड ठीक से घोषित किया गया है (private $width; भाग) - यह आईडीई की सिर्फ एक गड़बड़ी है जो अक्सर आईडीई अपडेट के बाद होता है।


इसके अलावा, किसी को भी संक्षिप्त व्याख्या कर सकते हैं अगर क्या चेतावनी द्वारा "ध्यान दें: चेक प्रकार की वस्तुओं पर नहीं किया जाता है" का अर्थ है stdClass "या व्युत्पन्न"?

इसका मतलब यह है कि: यदि यह ऑब्जेक्ट stdClass का उदाहरण है या ऐसी कक्षा को विस्तारित करता है तो यह जांच नहीं की जाती है।

यह stdClass की प्रकृति की वजह से है - यह किसी भी फ़ील्ड को कॉल स्वीकार कर सकता है (यहां तक ​​कि अपरिभाषित - यह चुपचाप इसे रनटाइम के दौरान आपके लिए परिभाषित करेगा) और उन मामलों में सामान्य वर्गों की त्रुटियों को फेंक नहीं देगा।

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