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