PHP實現(xiàn)數(shù)組和對象的相互轉換操作示例
本文實例講述了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通過Chianz.com獲取IP地址與地區(qū)的方法
這篇文章主要介紹了php通過Chianz.com獲取IP地址與地區(qū)的方法,是解析IP地址與地區(qū)非常實用的技巧,需要的朋友可以參考下2015-01-01
PHP中魔術變量__METHOD__與__FUNCTION__的區(qū)別
這篇文章主要介紹了PHP中魔術變量__METHOD__與__FUNCTION__的區(qū)別,是深入學習PHP程序設計所必須掌握的概念,非常具有實用價值,需要的朋友可以參考下2014-09-09
Fatal error: Allowed memory size of 134217728 bytes exhauste
這篇文章主要介紹了Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)錯誤的解決方法,需要的朋友可以參考下2014-11-11
PHP實現(xiàn)的隨機IP函數(shù)【國內IP段】
這篇文章主要介紹了PHP實現(xiàn)的隨機IP函數(shù),可實現(xiàn)輸出國內IP段的功能,涉及php字符串與數(shù)組的計算操作相關技巧,需要的朋友可以參考下2016-07-07

