国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關(guān)于PHP的JsonSerializable

DC_er / 519人閱讀

摘要:我們都知道的可以對一個(gè)對象進(jìn)行編碼生成字符串,但是我們的程序中對象往往是很復(fù)雜的,只是話對象的公共屬性,這的確有點(diǎn)力不從心,好在在開始有了一個(gè)叫做的接口,它解決了這個(gè)痛點(diǎn),我們來看一看。本文原創(chuàng)發(fā)布于微信公眾號北哥兄弟連。

我們都知道php的json_encode()可以對一個(gè)對象進(jìn)行編碼生成json字符串,但是我們的程序中對象往往是很復(fù)雜的,json_encode()只是json話對象的公共屬性,這的確有點(diǎn)力不從心,好在在PHP5.4開始有了一個(gè)叫做JsonSerializable的接口,它解決了這個(gè)痛點(diǎn),我們來看一看。

什么是JsonSerializable

JsonSerializable是一個(gè)接口任何實(shí)現(xiàn)了這個(gè)接口的類, 需要定義一個(gè)jsonSerialize()方法, 這個(gè)方法會在對這個(gè)類的對象做Json化的時(shí)候被調(diào)用, 這個(gè)時(shí)候你就可以在這個(gè)方法內(nèi) , 隨意調(diào)整最終的Json化的結(jié)果。

不懂么?來個(gè)例子!

class Man implements JsonSerializable {
    private $a, $b;
 
    public function __construct($a, $b) {
        $this->a = $a;
        $this->b = $b;
    }
 
    public function jsonSerialize() {
        return $this->a + $this->b;
    }
}

echo json_encode(new Man (23, 42));// 輸出65

你看到了,此時(shí)當(dāng)json_encode對Man類的對象進(jìn)行編碼時(shí),因?yàn)镸an類繼承了JsonSerializable ,因此不會去管類的公共屬性而是調(diào)用了jsonSerialize函數(shù),將其結(jié)果返回。

為何講這個(gè)

可能你會疑問為何我會說這個(gè),一來現(xiàn)在app、微服務(wù)大道其行的今天,json協(xié)議重要的不要不要的,了解這個(gè)接口對我們操作json益處很大,二來在yii的Json類中也用到了JsonSerializable接口,所以學(xué)習(xí)這對我們研究yii源代碼是很有好處的。


本文原創(chuàng)發(fā)布于微信公眾號 北哥兄弟連

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/31968.html

相關(guān)文章

  • 教程:Laravel 集合(Collection)基礎(chǔ)用法

    摘要:方法可以傳一個(gè)單一值,或一組鍵值對或者一個(gè)回調(diào)函數(shù),然后它會返回一個(gè)布爾值來告知目標(biāo)內(nèi)容是否在集合中。排序方法接受一個(gè)鍵或回調(diào)函數(shù)參數(shù)用于對集合進(jìn)行排序。獲取一個(gè)集合中所有數(shù)字的和方法通過回調(diào)函數(shù)傳遞每個(gè)數(shù)據(jù)項(xiàng)。 showImg(https://segmentfault.com/img/remote/1460000018726031?w=1252&h=640); 文章轉(zhuǎn)自:https:...

    CoderStudy 評論0 收藏0
  • Laravel核心解讀 -- Response

    摘要:設(shè)置生成對象后就要執(zhí)行對象的方法了,該方法定義在類中,其主要目的是對進(jìn)行微調(diào)使其能夠遵從協(xié)議。最后會把完整的響應(yīng)發(fā)送給客戶端。本文已經(jīng)收錄在系列文章源碼學(xué)習(xí)里,歡迎訪問閱讀。 Response 前面兩節(jié)我們分別講了Laravel的控制器和Request對象,在講Request對象的那一節(jié)我們看了Request對象是如何被創(chuàng)建出來的以及它支持的方法都定義在哪里,講控制器時(shí)我們詳細(xì)地描述了...

    TigerChain 評論0 收藏0
  • Laravel 框架 Model 對象轉(zhuǎn) json 字符串丟失更新

    摘要:雖然在使用過程中應(yīng)該小心避免和撞上同名屬性,但偶爾還是會碰到的,這個(gè)還是稍微注意下就好,這并非,而是在當(dāng)前的程序處理方式下必然會產(chǎn)生的一個(gè)正常現(xiàn)象。 場景還原 UserModel class UserModel extends Model { public function role() { return $this->belognsTo(RoleMod...

    paraller 評論0 收藏0
  • php 學(xué)習(xí)指南及技術(shù)干貨

    摘要:安全生成安全的隨機(jī)數(shù),加密數(shù)據(jù),掃描漏洞的庫一個(gè)兼容標(biāo)準(zhǔn)的過濾器一個(gè)生成隨機(jī)數(shù)和字符串的庫使用生成隨機(jī)數(shù)的庫一個(gè)安全庫一個(gè)純安全通信庫一個(gè)簡單的鍵值加密存儲庫一個(gè)結(jié)構(gòu)化的安全層一個(gè)試驗(yàn)的面向?qū)ο蟮陌b庫一個(gè)掃描文件安全的庫 Security 安全 生成安全的隨機(jī)數(shù),加密數(shù)據(jù),掃描漏洞的庫 HTML Purifier-一個(gè)兼容標(biāo)準(zhǔn)的HTML過濾器 RandomLib-一個(gè)生成隨機(jī)數(shù)和字...

    lifefriend_007 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<