本文實(shí)例講述了PHP實(shí)現(xiàn)數(shù)組和對(duì)象的相互轉(zhuǎn)換操作。分享給大家供大家參考,具體如下:
關(guān)于php中想讓對(duì)象以數(shù)組的形式訪問,這時(shí)候就需要使用到get_object_vars()函數(shù)了。先來介紹一下這個(gè)函數(shù)。
官方文檔是這樣解釋的:
array get_object_vars ( object $obj )
返回由 obj 指定的對(duì)象中定義的屬性組成的關(guān)聯(lián)數(shù)組。
舉一個(gè)栗子:
?php
class Point2D {
var $x, $y;
var $label;
function Point2D($x, $y)
{
$this->x = $x;
$this->y = $y;
}
function setLabel($label)
{
$this->label = $label;
}
function getPoint()
{
return array("x" => $this->x,
"y" => $this->y,
"label" => $this->label);
}
}
// "$label" is declared but not defined
$p1 = new Point2D(1.233, 3.445);
print_r(get_object_vars($p1));
$p1->setLabel("point #1");
print_r(get_object_vars($p1));
?>
會(huì)輸出:
Array
(
[x] => 1.233
[y] => 3.445
[label] =>
)
Array
(
[x] => 1.233
[y] => 3.445
[label] => point #1
)
這樣就很好理解了,這個(gè)函數(shù)就是對(duì)象轉(zhuǎn)數(shù)組的關(guān)鍵函數(shù)。
對(duì)象轉(zhuǎn)數(shù)組具體實(shí)現(xiàn)
function objectToArray($obj) {
//首先判斷是否是對(duì)象
$arr = is_object($obj) ? get_object_vars($obj) : $obj;
if(is_array($arr)) {
//這里相當(dāng)于遞歸了一下,如果子元素還是對(duì)象的話繼續(xù)向下轉(zhuǎn)換
return array_map(__FUNCTION__, $arr);
}else {
return $arr;
}
}
數(shù)組轉(zhuǎn)對(duì)象具體實(shí)現(xiàn)
function arrayToObject($arr) {
if(is_array($arr)) {
return (object)array_map(__FUNCTION__, $arr);
}else {
return $arr;
}
}
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php常用函數(shù)與技巧總結(jié)》、《PHP錯(cuò)誤與異常處理方法總結(jié)》、《PHP基本語法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- PHP中把對(duì)象數(shù)組轉(zhuǎn)換成普通數(shù)組的方法
- php實(shí)現(xiàn)數(shù)組中索引關(guān)聯(lián)數(shù)據(jù)轉(zhuǎn)換成json對(duì)象的方法
- PHP數(shù)組與對(duì)象之間使用遞歸實(shí)現(xiàn)轉(zhuǎn)換的方法
- php對(duì)象和數(shù)組相互轉(zhuǎn)換的方法
- PHP中把對(duì)象轉(zhuǎn)換為關(guān)聯(lián)數(shù)組代碼分享
- php多層數(shù)組與對(duì)象的轉(zhuǎn)換實(shí)例代碼
- 解析PHP將對(duì)象轉(zhuǎn)換成數(shù)組的方法(兼容多維數(shù)組類型)
- PHP對(duì)象轉(zhuǎn)換為數(shù)組函數(shù)(遞歸方法)
- php簡(jiǎn)單對(duì)象與數(shù)組的轉(zhuǎn)換函數(shù)代碼(php多層數(shù)組和對(duì)象的轉(zhuǎn)換)