दिलचस्प पोस्ट
कैसे std :: string को LPCSTR में कनवर्ट करना है? सभी ब्राउज़रों में कैशिंग बंद करने के लिए <मेटा> टैग का उपयोग करना? एंड्रॉइड, कैसे sqlitedatabase में एक एसक्यूएल फ़ाइल exec करने के लिए कार्यों में निर्मित (या किसी अन्य विधि) का उपयोग करके सी ++ में 2 डी सरणी को सॉर्ट करें? AVPlayer स्ट्रीमिंग प्रगति कौन सा तेज और क्यों है? सेट या सूची? वस्तुओं के जावास्क्रिप्ट फ़िल्टर सरणी .js.erb वी.एस. जेएस जावा 7 में डायमंड ऑपरेटर का क्या मतलब है? पीएचपी का इस्तेमाल करते हुए एकल फाइल अपलोड फॉर्म बनाने का सबसे अच्छा तरीका क्या है? वर्तमान तारीख को न्यूनतम दिनांक पिक्चर दिनांक कैसे तय करें IPhone डेवलपमेंट में पीएनजी या जेपीजी का उपयोग कब करना है? स्प्रिंग डेटा जेपीए में FetchMode कैसे काम करता है फायरबेज उपयोगकर्ता टेबल पर अतिरिक्त विवरण जोड़ें ITextSharp के साथ पीडीएफ संपीड़न

नई स्व बनाम नई स्थिर

मैं PHP 5.2 पर काम करने के लिए PHP 5.3 लाइब्रेरी को परिवर्तित कर रहा हूं। मेरे रास्ते में खड़ी मुख्य चीज देर स्थिर बाध्यकारी का उपयोग करती है, जैसे return new static($options); , यदि मैं इसे return new self($options) करने के लिए परिवर्तित करता हूं तो क्या मुझे उसी परिणाम मिलेंगे?

new self और new static बीच अंतर क्या है?

Solutions Collecting From Web of "नई स्व बनाम नई स्थिर"

क्या मुझे एक ही परिणाम मिलेगा?

ज़रुरी नहीं। मैं PHP 5.2 के लिए एक वैकल्पिक हल के बारे में नहीं जानता, हालांकि।

new self और new static बीच अंतर क्या है?

self उसी वर्ग को संदर्भित करता है जिसमें new कीवर्ड वास्तव में लिखा जाता है।

static , PHP 5.3 के देर से स्थैतिक बाइंडिंग में, उस पदानुक्रम में जिस वर्ग को आपने बुलाया,

निम्न उदाहरण में, B A से दोनों विधियों को सन्दर्भ करता है self आमंत्रण A के लिए बाध्य है क्योंकि यह A की पहली विधि के कार्यान्वयन में परिभाषित है, जबकि static कॉल किए गए वर्ग के लिए बाध्य है (यह भी get_called_class() देखें)

 class A { public static function get_self() { return new self(); } public static function get_static() { return new static(); } } class B extends A {} echo get_class(B::get_self()); // A echo get_class(B::get_static()); // B echo get_class(A::get_self()); // A echo get_class(A::get_static()); // A 

अगर यह कोड स्थिर नहीं है, तो आप मिलते- get_class($this) 5.2 में get_class($this) का उपयोग करके काम कर सकते हैं।

 class A { public function create1() { $class = get_class($this); return new $class(); } public function create2() { return new static(); } } class B extends A { } $b = new B(); var_dump(get_class($b->create1()), get_class($b->create2())); 

परिणाम:

 string(1) "B" string(1) "B"