दिलचस्प पोस्ट
जीमेल के माध्यम से सी # भेजते समय प्रेषक पते को बदलें एडीओडीबी और सामान्य वेबसाइट सुरक्षा में एसक्यूएल इंजेक्शन मैं एक विशिष्ट शब्द के सभी उदाहरणों की शैली / भागों / को कैसे jQuery का उपयोग कर सकता हूं? रेलल्स 3 में कोई भी संबद्ध रिकॉर्ड के साथ रिकॉर्ड खोजना चाहते हैं मैं एक सरणी से एक धारा कैसे बना सकता हूं? PHP में थ्रेड्स स्थानीय क्षेत्र को बल दें मैं एंड्रॉइड के सिस्टम संस्करण को कैसे देख सकता हूं? मैं RtdServer का उपयोग करके सी # में वास्तविक समय एक्सेल स्वचालन ऐड-इन कैसे बनाऊँ? क्या मैं प्रोग्राम को Google क्रोम एक्सटेंशन से devtools खोल सकता / सकती हूं? क्या मैं एक आईफ्रेम के भीतर तत्वों के लिए सीएसएस आवेदन कर सकता हूँ? छवि का उपयोग करने के लिए मैं UITableView की पृष्ठभूमि (तालिकाव्यू शैली "समूहबद्ध") कैसे सेट कर सकता हूं? एंड्रॉइड: HTTP संचार "स्वीकृत-एन्कोडिंग: जीज़िप" का उपयोग करना चाहिए .tagName और .nodeName के बीच अंतर जावा में डबल के साथ सटीकता बनाए रखें

PHP में stdClass क्या है?

कृपया परिभाषित करें कि क्या stdClass है

वेब के समाधान से एकत्रित समाधान "PHP में stdClass क्या है?"

stdClass PHP का सामान्य रिक्त वर्ग है, जावा में object या पायथन में object की तरह ( संपादित करें: लेकिन वास्तव में सार्वभौमिक बेस क्लास के रूप में उपयोग नहीं किया गया है, यह इंगित करने के लिए धन्यवाद @ सीरन )।

यह गुमनाम वस्तुओं, गतिशील गुणों आदि के लिए उपयोगी है।

उदाहरण के लिए PHP और StdClass में डायनामिक गुण देखें।

stdClass सिर्फ एक सामान्य 'रिक्त' वर्ग है जो कि अन्य प्रकार के ऑब्जेक्ट्स कास्टिंग करते समय उपयोग किया जाता है। दूसरे दो जवाबों के बावजूद, stdClass PHP में ऑब्जेक्ट्स के लिए बेस क्लास नहीं है। यह काफी आसानी से प्रदर्शित किया जा सकता है:

 class Foo{} $foo = new Foo(); echo ($foo instanceof stdClass)?'Y':'N'; // outputs 'N' 

मुझे विश्वास नहीं है कि PHP में एक बेस वस्तु की एक अवधारणा है

stdClass एक और महान PHP सुविधा है। आप एक अज्ञात PHP वर्ग बना सकते हैं। एक उदाहरण की जांच करें।

 $page=new stdClass(); $page->name='Home'; $page->status=1; 

अब लगता है कि आपके पास एक अन्य वर्ग है जो एक पृष्ठ ऑब्जेक्ट के साथ आरंभ करेगा और उस पर आधार को अंजाम देगा।

 <?php class PageShow { public $currentpage; public function __construct($pageobj) { $this->currentpage = $pageobj; } public function show() { echo $this->currentpage->name; $state = ($this->currentpage->status == 1) ? 'Active' : 'Inactive'; echo 'This is ' . $state . ' page'; } } 

अब आपको पेज ऑब्जेक्ट के साथ एक नया पेजशो ऑब्जेक्ट बनाना होगा।

यहां इसके लिए एक नया क्लास टेम्पलेट लिखने की आवश्यकता नहीं है, बस आप उड़ने पर क्लास बनाने के लिए stdClass का उपयोग कर सकते हैं।

  $pageview=new PageShow($page); $pageview->show(); 

यह भी ध्यान देने योग्य है, एक stdClass ऑब्जेक्ट भी json_decode() के उपयोग से बनाया जा सकता है

इसी तरह,

 $myNewObj->setNewVar = 'newVal'; 

एक stdClass ऑब्जेक्ट पैदावार – ऑटो जाति

मुझे गलत वर्तनी से आज यह पता चला है:

 $GLOBASLS['myObj']->myPropertyObj->myProperty = 'myVal'; 

ठंडा!

StdClass का उपयोग करके आप अपनी संपत्तियों के साथ एक नया ऑब्जेक्ट बना सकते हैं। निम्न उदाहरण पर विचार करें जो उपयोगकर्ता के विवरण को एक एसोसिएटिव सरणी के रूप में दर्शाता है।

 $array_user = array(); $array_user["name"] = "smith john"; $array_user["username"] = "smith"; $array_user["id"] = "1002"; $array_user["email"] = "smith@nomail.com"; 

यदि आपको एक वस्तु के गुणों के समान विवरण का प्रतिनिधित्व करने की आवश्यकता है, तो आप नीचे के रूप में stdClass का उपयोग कर सकते हैं।

 $obj_user = new stdClass; $obj_user->name = "smith john"; $obj_user->username = "smith"; $obj_user->id = "1002"; $obj_user->email = "smith@nomail.com"; 

यदि आप जूमला डेवलपर हैं तो इस उदाहरण को जूमला डॉक्स में अधिक समझने के लिए देखें।

दरअसल मैंने खाली STDClass बनाने की कोशिश की और गति की तुलना में खाली वर्ग के लिए किया।

 class emp{} 

फिर 1000 स्टड क्लासेस और एम्पस का निर्माण किया … खाली वर्गों को 1100 माइक्रोसॉक्ड्स के आसपास किया गया, जबकि stdClasses ने 1700 माइक्रोसॉन्ड्स का अधिग्रहण किया। इसलिए यदि आप ऑब्जेक्ट्स का उपयोग इतनी बुरी तरह से करना चाहते हैं तो अपने डाटा को संग्रहित करने के लिए अपना डमी क्लास बनाने में बेहतर लगता है।

stdClass एक अज्ञात वर्ग या अनाम वस्तु नहीं है

यहां दिए गए उत्तर में अभिव्यक्तियां शामिल हैं जो stdClass एक गुमनाम वर्ग या अनाम वस्तु भी है। यह सच नहीं है

stdClass सिर्फ एक नियमित पूर्वनिर्धारित वर्ग है। आप इसे instanceof get_class ऑपरेटर या फंक्शन get_class । कुछ खास नहीं है यहां। ऑब्जेक्ट के लिए अन्य मानों कास्टिंग करते समय PHP इस वर्ग का उपयोग करता है

कई मामलों में जहां प्रोग्रामर्स द्वारा stdClass का उपयोग किया जाता है, उपयोगी कार्यों के कारण सरणी बेहतर विकल्प है, और यह तथ्य कि यह उपयोग करने वाला डेटा संरचना वास्तविक वस्तु नहीं दर्शाता है।

यदि आप किसी पुस्तक के बारे में कुछ डेटा रखने के लिए एक नया ऑब्जेक्ट जल्दी से बनाना चाहते हैं आप ऐसा कुछ करेंगे:

 $book = new stdClass; $book->title = "Harry Potter and the Prisoner of Azkaban"; $book->author = "JK Rowling"; $book->publisher = "Arthur A. Levine Books"; $book->amazon_link = "http://rads.stackoverflow.com/amzn/click/0439136369"; 

अधिक जानकारी के लिए कृपया साइट को देखें – http://www.webmaster-source.com/2009/08/20/php-stdclass-storing-data-object-instead-array/

उपयोग में stdClass ऑब्जेक्ट

stdClass आपको निमंत्रण कक्षाएं बनाने और ऑब्जेक्ट कास्टिंग के साथ की अनुमति देता है आप ओओपी शैली में एक एसेओसिएटिव सरणी की चाबियाँ एक्सेस कर सकते हैं। जैसे आप नियमित ऑब्जेक्ट संपत्ति का उपयोग करेंगे

उदाहरण

 class Example { private $options; public function __construct(Array $setup) { // casting Array to stdClass object $this->options = (object) $setup; // access stdClass object in oop style - here transform data in OOP style using some custom method or something... echo $this->options->{'name'}; // ->{'key'} echo $this->options->surname; // ->key } } $ob1 = new Example(["name" => "John", "surname" => "Doe"]); 

प्रतिध्वनित होगा

जॉन डो

php.net मैनुअल में कुछ ठोस स्पष्टीकरण और उदाहरण हैं जो stdClass के उपयोगकर्ताओं द्वारा दिए गए योगदान हैं, मुझे विशेष रूप से यह एक http://php.net/manual/en/language.oop5.basic.php#92123 , https: // पसंद है stackoverflow.com/a/1434375/2352773

stdClass डिफ़ॉल्ट PHP ऑब्जेक्ट है stdClass में कोई गुण, विधियों या माता-पिता नहीं हैं। यह जादू विधियों का समर्थन नहीं करता, और कोई इंटरफेस लागू नहीं करता है।

जब आप ऑब्जेक्ट के रूप में एक स्केलर या सरणी डालते हैं, तो आपको stdClass का एक उदाहरण मिलता है। जब भी आपको सामान्य ऑब्जेक्ट इंस्टेंस की आवश्यकता होती है, तब आप stdClass का उपयोग कर सकते हैं।

stdClass आधार वर्ग नहीं है! PHP कक्षाएं किसी भी वर्ग से स्वचालित रूप से वंशानुगत नहीं होती हैं सभी वर्ग स्वसंपूर्ण हैं, जब तक कि वे स्पष्ट रूप से एक और वर्ग का विस्तार नहीं करते। PHP इस संबंध में कई वस्तु-उन्मुख भाषाओं से अलग है।

आप एक वर्ग को परिभाषित कर सकते हैं जो stdClass फैली है, लेकिन आपको कोई लाभ नहीं मिलेगा, क्योंकि stdClass कुछ भी नहीं करता है।

stClass एक खाली क्लास है जिसे पीएचपी द्वारा ही बनाया गया है, और इसे केवल php द्वारा उपयोग किया जाना चाहिए, क्योंकि यह सिर्फ एक "खाली" वर्ग नहीं है, php stdClass का उपयोग ऑब्जेक्ट शैली में ऑरेंज कन्वर्ट करने के लिए stdClass का उपयोग करता है यदि आप stdClass का उपयोग करना चाहते हैं, मैं दो बेहतर विकल्प सुझाता हूं : 1- सरणियों का उपयोग करें (कक्षाओं से ज्यादा तेज) 2- अपना खाली वर्ग बनाओ और उसका उपयोग करें

 //example 1 $data=array('k1'=>'v1' , 'k2'=>'v2',....); //example 2 //creating an empty class is faster than instances an stdClass class data={} $data=new data(); $data->k1='v1'; $data->k2='v2'; 

क्या सरणी शैली के बजाय ऑब्जेक्ट शैली का उपयोग करने के बारे में कोई सोचने के लिए ???

आप अपनी पसंद के किसी ऑब्जेक्ट में ऑरेंज को डालने के लिए object का भी उपयोग कर सकते हैं:

 Class Example { public $name; public $age; } 

अब प्रकार का एक वस्तु बनाने के लिए और इसका इनिशियलाइज़ करने के लिए आप इनमें से कोई भी कर सकते हैं:

 $example = new Example(); $example->name = "some name"; $example->age = 22; 

या

 $example = new Example(); $example = (object) ['name' => "some name", 'age' => 22]; 

दूसरी विधि ज्यादातर गुणों के साथ वस्तुओं को प्रारंभ करने के लिए अधिक उपयोगी होती है।

stdclass एक तरीका है जिसमें php स्क्रिप्ट की व्याख्या को रोकने से बचता है, जब कुछ डेटा एक वर्ग में रखा जाना चाहिए, लेकिन दुर्भाग्य से इस वर्ग को परिभाषित नहीं किया गया था

उदाहरण :

  return $statement->fetchAll(PDO::FETCH_CLASS , 'Tasks'); 

यहां डेटा पूर्वनिर्धारित 'कार्य' में रखा जाएगा लेकिन, अगर हमने कोड को इस तरह से किया है:

  return $statement->fetchAll(PDO::FETCH_CLASS ); 

तो php परिणाम stdclass में डाल देगा ।

बस php कहते हैं कि: देखो, हमारे पास एक अच्छे बच्चे हैं [ऑब्जेक्ट्स] यहां पर बिना माता-पिता के। इसलिए, हम उन्हें एक शिशु केयर होम स्टडी क्लास में भेजेंगे 🙂