PHP學習筆記 基於反射的陣列轉實體物件方案

2021-09-22 21:29:26 字數 1775 閱讀 9155

php陣列轉物件網上提供了乙個這樣的方法

function

array_to_object

($arr

)foreach

($arr

as$k

=>$v)

}return

(object)

$arr;}

$arr=[

'name'

=>

"aa"

,"id"

=>3,

"age"

=>

['name'

=>

"aa"

,"id"

=>3,

"age"

=>2]

];var_dump

(array_to_object

($arr))

;

能轉沒毛病,,但是php的陣列轉物件貌似可以更簡單更通俗(json序列化,再json反序列化成物件)

var_dump

(json_decode

(json_encode

($arr))

);

這僅僅是陣列轉物件的方案,,想轉實體物件(自己定義的物件)還需要用反射,下面提供簡單例項:

/**

* 測試類student

* class student

*/class

student

/** * @param mixed $name

*/public

function

setname

($name

): void

/** * @return mixed

*/public

function

getid()

/** * @param mixed $id

*/public

function

setid

($id

): void

}/**

* 反射建立類的操作物件,$reflectionclass

* 建立臨時**物件$obj

* 將引數逐一賦值給$obj

* 那麼此時的$obj就是陣列對應的實體類(此處不包含巢狀,只支援簡單物件轉)

* @param array $arr

* @param string $classname

* * @return object

* @throws reflectionexception

*/function

arrayto******obj

(array

$arr

, string $classname

)return

$obj;}

$arr=[

'name'

=>

"aa"

,"id"

=>3]

;try

catch

(reflectionexception$e)

$arr=[

'name'

=>

"aa"

,"id"

=>3,

"age"

=>2]

;try

catch

(reflectionexception$e)

PHP 陣列 學習筆記

一 陣列的分類 1.索引陣列 下標是整數的陣列,下標從0開始依次類推 arr array a b c d echo arr 1 索引陣列的三種賦值方式 第一種 arr array a b 第二種 arr 2 c arr 5 f 第三種 arr2 array 0 蘋果 1 香蕉 10 橘子 索引陣列的...

PHP陣列學習筆記

php陣列學習筆記 php數學有三類,數值陣列 帶有數字id 鍵的陣列 關聯陣列 陣列中的每個 id 鍵關聯乙個值 多維陣列 包含乙個或多個陣列的陣列。如何宣告?name array a b c 這裡當然可以不用引號,它也被解析為字串,但是要注意,比如www.aaa.com這種形式,如果要他正確解析...

php學習筆記(八)陣列

陣列是特殊的變數,它可以同時儲存乙個以上的值。如果您有乙個專案列表 例如汽車品牌列表 在單個變數中儲存這些品牌名稱是這樣的 cars1 volvo cars2 bmw cars3 saab 不過,假如您希望對變數進行遍歷並找出特定的那個值?或者如果您需要儲存 300 個汽車品牌,而不是 3 個呢?解...