? ??? ???? ???? ?? PHP ?????? ?? ???????. ThinkPHP5? ???? ?? ?? ?? PHP ????? ? ????, ???? ???? ???, ???? ??? ??? ??? ??? ???, ???? ?????? ???? ???? ????. ? ????? ???? ? ?????? ???? ? ? ?? ? ??? ThinkPHP5? ??-?? ??? ?? ?????.
1. ??? ??? ???? ?? ??
PHP ???? ?? ??? ??? ?? ??? ??? ???? ?? ??? ????. ???? ??? ?? ? ??? ??? ?? ????
ThinkPHP5? ??? ??? ???? ?? ??? ??, ? PHP? stdClass() ???? ???? ??? ?????. ? ???? ???? ??? ??? ??????? PHP? ?? ??????. ? ???? ???? ??? ??? ?? ??? ? ????.
2. stdClass()? ???? ??? ?? ?? ??
??? ThinkPHP5? stdClass() ???? ???? ??? ?? ??? ???? ?? ?????.
$array?=?array('name'?=>?'ThinkPHP',?'url'?=>?'www.thinkphp.cn'); $obj?=?(object)$array; echo?$obj->name;?//?輸出:ThinkPHP echo?$obj->url;?//?輸出:www.thinkphp.cn
? ???? ?? name
? url
? ??? ???? $array
??. ?? ?? (object)
???? ???? ??? $obj
??? ???? $obj->name
? $obj? ?????. ->url
??? ?? ?? ??????. $array
,包含name
和url
兩個(gè)元素。然后使用(object)
強(qiáng)制類型轉(zhuǎn)換將該數(shù)組轉(zhuǎn)換成對(duì)象$obj
,并通過(guò)$obj->name
和$obj->url
訪問(wèn)該對(duì)象屬性的值。
三、使用數(shù)組轉(zhuǎn)換工具實(shí)現(xiàn)數(shù)組轉(zhuǎn)對(duì)象
除了使用內(nèi)置的stdClass()類,我們也可以使用第三方的數(shù)組轉(zhuǎn)換工具實(shí)現(xiàn)數(shù)組轉(zhuǎn)對(duì)象。這些工具不僅可以將數(shù)組轉(zhuǎn)換成對(duì)象,還可以實(shí)現(xiàn)對(duì)象或數(shù)組之間的相互轉(zhuǎn)換。常見(jiàn)的PHP數(shù)組轉(zhuǎn)換工具有JsonSerializable、Hydrator和ArraySerializable等。
下面我們以JsonSerializable為例,簡(jiǎn)要介紹其實(shí)現(xiàn)數(shù)組轉(zhuǎn)對(duì)象的方法:
class?User?implements?JsonSerializable { ????private?$id; ????private?$name; ????private?$email; ????public?function?__construct($id,?$name,?$email) ????{ ????????$this->id?=?$id; ????????$this->name?=?$name; ????????$this->email?=?$email; ????} ????public?function?jsonSerialize() ????{ ????????return?[ ????????????'id'?=>?$this->id, ????????????'name'?=>?$this->name, ????????????'email'?=>?$this->email ????????]; ????} } $userArray?=?array('id'?=>?1,?'name'?=>?'Tom',?'email'?=>?'tom@test.com'); $user?=?new?User($userArray); $json?=?json_encode($user); echo?$json;
上述代碼中,我們定義了一個(gè)表示用戶信息的User類,并實(shí)現(xiàn)了JsonSerializable接口,該接口中定義了jsonSerialize()方法用于序列化需要被JSON編碼的數(shù)據(jù)。此處我們將用戶的id
、name
和email
屬性序列化成一個(gè)數(shù)組。接下來(lái),我們定義一個(gè)用戶信息數(shù)組$userArray
,使用該數(shù)組生成用戶對(duì)象$user
,然后使用json_encode()
id
, name
? email
??? ????? ??????. ????, ??? ?? ?? $userArray
? ???? ? ??? ???? ??? ?? $user
? ??? ?? json_encode()
? ?????. ??? JSON ???? ????? JSON ???? ?????. ????4. ??????PHP ??? ?? ?? ??? ?? ???? ???? ??? ?? ?????. ThinkPHP5? stdClass() ???? ?? ?? ?? ??? ???? ??? ?? ?? ?? ??? ? ???, PHP ??? ?? ?? ??? ?? ??? ?????. ??? ??? ThinkPHP5? ??-?? ??? ?? ???? ???.? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)