form - php download



Php में स्ट्रक्चर डाटा टाइप? (4)

क्या कोई मुझे php में स्ट्रक्चर डेटा प्रकार के लिए उदाहरण दे सकता है? कैसे अचानक php में स्ट्रक्चर्स जैसा कुछ आता है?


आप एक सरणी का उपयोग कर सकते हैं

$something = array(
   'key' => 'value',
   'key2' => 'value2'
);

या मानक वस्तु के साथ।

$something = new StdClass();

$something->key = 'value';
$something->key2 = 'value2';

ऐसा लगता है कि struct डेटाटाइप का उपयोग आमतौर पर SOAP में किया जाता है :

var_dump($client->__getTypes());

array(52) {
  [0] =>
  string(43) "struct Bank {\n string Code;\n string Name;\n}"
}

यह एक देशी PHP डेटाटाइप नहीं है!

ऐसा लगता है कि SOAP में निर्दिष्ट struct प्रकार के गुणों को एक साधारण PHP stdClass ऑब्जेक्ट के रूप में एक्सेस किया जा सकता है:

$some_struct = $client->SomeMethod();
echo 'Name: ' . $some_struct->Name;

मैंने आज एक 'डायनेमिक' स्ट्रक्चर क्लास के साथ मिलकर काम किया, आज रात एक नज़र आया और किसी ने कंस्ट्रक्टर मापदंडों के बेहतर संचालन के साथ कुछ ऐसा ही लिखा है, यह देखने लायक हो सकता है:

http://code.activestate.com/recipes/577160-php-struct-port/

इस पृष्ठ की टिप्पणियों में से एक में PHP में एक दिलचस्प बात का उल्लेख है - जाहिर है कि आप एक ऑब्जेक्ट के रूप में एक सरणी कास्ट करने में सक्षम हैं, जो आपको एरो नोटेशन का उपयोग करके एरे तत्वों का संदर्भ देता है, जैसा कि आप सी में एक स्ट्रक्चर पॉइंटर के साथ करेंगे। टिप्पणी का उदाहरण इस प्रकार था:

$z = array('foo' => 1, 'bar' => true, 'baz' => array(1,2,3));
//accessing values as properties
$y = (object)$z;
echo $y->foo;

मैंने खुद अभी तक यह कोशिश नहीं की है, लेकिन यह हो सकता है कि आप केवल कास्टिंग करके वांछित अंकन प्राप्त कर सकते हैं - यदि यह सब आपके बाद है। ये निश्चित रूप से 'डायनेमिक' डेटा संरचनाएं हैं, जो हैश में कुंजी / मूल्य जोड़े तक पहुंचने के लिए केवल सिंटैक्टिक चीनी हैं।

यदि आप वास्तव में कुछ और वैधानिक रूप से टाइप कर रहे हैं, तो ASpencer का उत्तर है कि आप जिस Droid की तलाश कर रहे हैं (जैसा कि ओबी-वान कह सकते हैं।)


सबसे करीबी व्यक्ति के पास एक ऐसी संरचना है जो सभी सदस्यों के लिए एक वस्तु है।

class MyStruct {
    public $foo;
    public $bar;
}

$obj = new MyStruct();
$obj->foo = 'Hello';
$obj->bar = 'World';

मैं कहूंगा कि PHP क्लास डॉक्यूमेंटेशन देखने लायक होगा। यदि आपको एक बंद संरचना की आवश्यकता है, तो एलेक्स के उत्तर में उल्लिखित StdObject का उपयोग करें ।





php