成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

關(guān)于PHP的JsonSerializable

DC_er / 525人閱讀

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

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

什么是JsonSerializable

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

不懂么?來個例子!

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

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

為何講這個

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


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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

    lifefriend_007 評論0 收藏0

發(fā)表評論

0條評論

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