मैं कास्टिंग तंत्र PHPs चारों ओर poking था के रूप में संख्यात्मक कुंजियों के साथ किसी सरणी कास्टिंग है और जब एक वस्तुएक वस्तु
$o = (object) array('1'=>'/foo/bar');
$o = new stdClass();
var_dump($o);
मैं यह समझ के रूप में, पीएचपी गुण होने की जरूरत के रूप में एक सरणी कास्टिंग एक अजीब मामला में भाग PHP चर के समान नियमों के साथ घोषित किया गया। वह A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores है। हालांकि, उपरोक्त कोड निम्नलिखित आउटपुट
object(stdClass)#1 (1) {
[1]=>
string(8) "/foo/bar"
}
जहां यह वास्तव में अजीब हो जाता है जब आप ऑब्जेक्ट में उस जानकारी तक पहुंचने का प्रयास करते हैं।
var_dump($o->1); // parse error
var_dump($o->{'1'}); // NULL
var_dump(get_object_vars($o)); //array(0) { }
में जानकारी है कि रिपोर्ट var_dump वस्तु में है प्राप्त करने के लिए वैसे भी वहाँ है, या यह सिर्फ अनुरोध जीवन चक्र के आराम के लिए बंद कर दिया जाता है? (इसका व्यावहारिक उपयोग शून्य है, मैं सिर्फ उत्सुक हूं)
मेरे अनुभव से ऐसा लगता है जैसे वे दूर बंद हैं, हालांकि मैं कभी नहीं किया है पर्याप्त अटल सब कुछ कोशिश करने के लिए किया गया। – jlb
वास्तव में यह मामला है, यह PHP में एक ज्ञात मुद्दा है। – GSto
जिसे हमारे द्वारा ज्ञात के रूप में जाना जाता है, या जिसे PHP टीम द्वारा किसी भी तरीके से स्वीकार किया जाता है। –