2010-09-21 17 views
10

जब मैं var_dump एक वस्तु, उत्पादन इस तरह दिखता है:प्रश्न

object(XCTemplate)#2477 (4) { 
    ["id"]=> 
    string(1) "1" 
    ["attributes"]=> 
    array(0) { 
    } 
    ["db_table_name"]=> 
    string(14) "template_names" 
    ["cache"]=> 
    array(0) { 
    } 
} 

XCTemplate ज़ाहिर है, अपने वर्ग है, लेकिन पूर्णांक (यहाँ: 2477) क्या करता है # के बाद क्या मतलब है?

उत्तर

8

यह XCTemplate के उस विशेष उदाहरण से जुड़ा एक अद्वितीय आईडी है। AFAIK यह दस्तावेज नहीं है, और इसे पाने का कोई तरीका नहीं है (var_dump() का उपयोग करने के अलावा); और मैंने Reflection कक्षा को देखा है।

मैं क्या देखा है से

:

  • आईडी हर इन्स्टेन्शियशन के लिए अद्वितीय हैं; 1 से शुरू होता है और प्रत्येक नई वस्तु के साथ 1 से बढ़ता है। इसमें प्रत्येक वस्तु शामिल है; उन्हें एक ही कक्षा का होना जरूरी नहीं है।
  • एक उदाहरण को नष्ट करना (उदाहरण: unset के माध्यम से) अपनी आईडी को मुक्त करता है और अगली तत्काल वस्तु (और इच्छा) इसका उपयोग कर सकती है।
  • यह चर से संबंधित नहीं है; उदाहरण:

    $foo = new Foo(); 
    var_dump($foo); 
    $foo = new Foo(); 
    var_dump($foo); 
    

    अलग-अलग तत्कालताओं के लिए अलग-अलग आईडी का उत्पादन करेगा। इस संख्या में वृद्धि की जाती है

    $resource= curl_init();  
    var_dump($resource);  // resource #1 of type curl 
    print(intval($resource)); // 1 
    print((int) $resource); // 1 
    
+1

प्रत्येक इन्स्टेन्शियशन पर, जोड़ने के लिए,:

  • यह नहीं संसाधन आईडी है, जहां आप सिर्फ int में बदल सकते हैं आईडी प्राप्त करने के समान है। यदि कोई उदाहरण हटा दिया जाता है (अनसेट), तो उस इंस्टेंस का # फिर अगले उदाहरण के लिए पुन: उपयोग किया जाएगा। – webbiedave

  • +1

    इसके अलावा, यह किसी विशेष वर्ग का उदाहरण आईडी नहीं है, लेकिन किसी भी वर्ग का है। – webbiedave

    +1

    क्या इसका मतलब यह है कि 2477 वस्तुओं को पूरी लिपि में शुरू किया गया है? : ओ – Daniel

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