कक्षा गुण प्राप्त करने और (array)
कास्टिंग का उपयोग करके इसे परिवर्तित करने का एक तरीका है।क्या कोई सरणी क्लास गुणों में कनवर्ट करने का कोई तरीका है?
$user = (array) get_object_vars($userObject)
लेकिन मुझे आश्चर्य है, मुझे सरणी को कक्षा गुणों में परिवर्तित करने के लिए कोई सीधी विधि नहीं मिली है।
class User
{
private $id = 0;
private $fname = '';
private $lname = '';
private $username = '';
}
मैं सरणी निम्नलिखित है:
$user = array(
'id'=> 2,
'fname' => 'FirstName',
'lname' => 'LastName',
'username' => 'UserName'
);
मैं एक प्रकार डाली रहा हूँ जैसे हम (object)
है
मान लीजिए मैं निम्नलिखित कार्यान्वयन के साथ उपयोगकर्ता वर्ग की है। समस्या (object)
टाइप कास्ट कनवर्ट्स सरणी stdClass
ऑब्जेक्ट पर है, लेकिन यहां मैं चाहता हूं कि मेरी सरणी को मेरी निर्दिष्ट कक्षा में परिवर्तित किया जाए।
उदाहरण की तरह कहा जाना चाहिए: (।। मेरी धारणा, पीएचपी इस है चाहिए या यह पहले से ही इस तरह की कुछ बात हो सकती है और मैं नहीं जानता)
$userobj = (object User) $user;
और इसके बाद के संस्करण वाक्य रचना का परिणाम चाहिए जैसे ही:
$userobj->id = $user['id'];
$userobj->fname = $user['fname'];
$userobj->lname = $user['lname'];
$userobj->username = $user['username'];
मैं जानना चाहता हूं कि मैपिंग का तर्क नहीं है या नहीं। भाषा स्तर की चाल खोज रहे हैं।
नोट: मुझे उपर्युक्त होने के लिए foreach
के उपयोग से अवगत है। यदि PHP में उपलब्ध है तो मैं कुछ सीधी विधि ढूंढ रहा हूं लेकिन अभी तक फोकस नहीं कर सकता (हो सकता है!)।
मेरे सवाल का समाधान नहीं करता है के बाद: Convert/cast an stdClass object to another class
वैसा करने के लिए अपने स्वयं के कस्टम विधि लिखने के लिए होगा। इसका कारण यह है कि ऑब्जेक्ट नहीं जानता कि विभिन्न गुणों या गुणों को कैसे प्रबंधित किया जाए जिन्हें परिभाषित नहीं किया गया है। कुछ ऑब्जेक्ट-> लोड ($ सरणी) की तरह कुछ। –
संभावित डुप्लिकेट [एक PHP सरणी को कक्षा चर में कनवर्ट करना] (http://stackoverflow.com/questions/2715465/converting-a-php-array-to-class-variables) –
संभावित डुप्लिकेट [कनवर्ट/stdClass कास्ट करें किसी अन्य वर्ग पर ऑब्जेक्ट] (http://stackoverflow.com/questions/3243900/convert-cast-an-stdclass-object-to-another-class) – Richard