2011-05-24 12 views
12

PHP में ऑब्जेक्ट्स प्रॉपर्टी कुंजी/नाम बदलना संभव है? उदाहरण के लिए:PHP ऑब्जेक्ट को संशोधित करें संपत्ति का नाम

stdClass Object 
(
    [cpus] => 2 
    [created_at] => 2011-05-23T01:28:29-07:00 
    [memory] => 256 
) 

मैं एक वस्तु है कि लग रहा है छोड़ने वस्तु में created की कुंजी created_at परिवर्तन करना चाहते हैं की तरह:

stdClass Object 
(
    [cpus] => 2 
    [created] => 2011-05-23T01:28:29-07:00 
    [memory] => 256 
) 

उत्तर

15
$object->created = $object->created_at; 
unset($object->created_at); 

कुछ एक एडाप्टर वर्ग की तरह एक और अधिक मजबूत विकल्प हो सकता है हालांकि, यह ऑपरेशन कहां और कितनी बार आवश्यक है इस पर निर्भर करता है।

class PC { 
    public $cpus; 
    public $created; 
    public $memory; 

    public function __construct($obj) { 
     $this->cpus = $obj->cpu; 
     $this->created = $obj->created_at; 
     $this->memory = $obj->memory; 
    } 
} 

$object = new PC($object); 
5

नहीं, चूंकि कुंजी मान का संदर्भ है, न कि मूल्य स्वयं। आप मूल को कॉपी करने, फिर इसे हटाने से सबसे अच्छे हैं।

$obj->created = $obj->created_at; 
unset(obj->created_at); 
0

इसके एडाप्टर @deceze के लिए, लेकिन एक अतिरिक्त वर्ग बनाने के लिए आवश्यकता के बिना समान

$object = (object) array(
    'cpus' => $obj->cpus, 
    'created' => $obj->created_at, 
    'memory' => $obj->memory 
); 
संबंधित मुद्दे