2011-04-18 15 views
14

मैं इस PHP कोड सहयोग पर काम कर रहा हूँ और ऐसा लगता है कि कुछ लोग इसपीएचपी StdClass -> क्षेत्र या - -> { 'फील्ड'}

$body->head 

और दूसरों की तरह पीएचपी StdClass क्षेत्रों तक पहुँचने के रूप में उपयोग कर सकते क्षेत्रों

$body->{'head'} 

जहां तक ​​मैं ये कह सकता हूं समकक्ष हैं। क्या वो? क्या इससे कोई फर्क पड़ता है? आप किस तरह से पसंद करेंगे? यहां देखने के लिए कोई quirks?

उत्तर

21

वे समकक्ष हैं। आप केवल दूसरे संस्करण की जरूरत है आप की तरह घृणित विशेषता नाम उपयोग करना चाहते हैं:

$data->{'what * the ! thing'} 

यह कभी कभी होता है अगर आप वस्तुओं में शुद्ध डेटा सरणियों परिवर्तित।

लेकिन वहाँ भी है दोहरे उद्धरण चिह्नों संस्करण है, जो थोड़ा अधिक समझ में आता है जब आप वास्तव में चर विशेषता नाम (वस्तुओं के लिए मूल रूप से चर चर) की जरूरत है:

$data->{"attr$index"} 
+1

हाँ। यदि संभव हो तो '$ body -> {'head'} से बचें। – Emmerman

2

मैं असामान्य संपत्ति नामों के साथ वर्ग बनाने की जरूरत इस {'फ़ील्ड-नाम'} की तरह।

class myclass 
{ 
    public {'field-name-with-minus-sign'} = "something"; 
} 

आईडी काम नहीं करता है। क्यूं कर? मैं इस तरह कुछ उपयोग नहीं करना चाहता:

$myclass = new stdClass(); 
$myclass->{'dumb-property-name'} 

क्योंकि मेरे पास इस तरह के बहुत सारे गुण हैं।

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