PHP實(shí)現(xiàn)數(shù)組和對(duì)象的相互轉(zhuǎn)換操作示例
本文實(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基本語(yǔ)法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(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)換)
相關(guān)文章
php學(xué)習(xí)之?dāng)?shù)據(jù)類型之間的轉(zhuǎn)換介紹
php學(xué)習(xí)之?dāng)?shù)據(jù)類型之間的轉(zhuǎn)換介紹,學(xué)習(xí)php的朋友可以參考下。2011-06-06
php通過Chianz.com獲取IP地址與地區(qū)的方法
這篇文章主要介紹了php通過Chianz.com獲取IP地址與地區(qū)的方法,是解析IP地址與地區(qū)非常實(shí)用的技巧,需要的朋友可以參考下2015-01-01
PHP中魔術(shù)變量__METHOD__與__FUNCTION__的區(qū)別
這篇文章主要介紹了PHP中魔術(shù)變量__METHOD__與__FUNCTION__的區(qū)別,是深入學(xué)習(xí)PHP程序設(shè)計(jì)所必須掌握的概念,非常具有實(shí)用價(jià)值,需要的朋友可以參考下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)錯(cuò)誤的解決方法,需要的朋友可以參考下2014-11-11
PHP PDO數(shù)據(jù)庫(kù)操作預(yù)處理與注意事項(xiàng)
今天小編就為大家分享一篇關(guān)于PHP PDO數(shù)據(jù)庫(kù)操作預(yù)處理與注意事項(xiàng),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
PHP實(shí)現(xiàn)的隨機(jī)IP函數(shù)【國(guó)內(nèi)IP段】
這篇文章主要介紹了PHP實(shí)現(xiàn)的隨機(jī)IP函數(shù),可實(shí)現(xiàn)輸出國(guó)內(nèi)IP段的功能,涉及php字符串與數(shù)組的計(jì)算操作相關(guān)技巧,需要的朋友可以參考下2016-07-07
php socket實(shí)現(xiàn)的聊天室代碼分享
這篇文章主要介紹了php socket實(shí)現(xiàn)的聊天室代碼分享,本文實(shí)現(xiàn)代碼來自國(guó)外友人,需要的朋友可以參考下2014-08-08

