検索

ホームページ  >  に質問  >  本文

toJsonメソッドとjsonSerializeメソッドの違いは?

Illuminate\Support\MessageBag クラスのメソッドを見ると、クラスは次のようになります。

JsonSerializable を使用します。
Illuminate\Contracts\Support\Jsonable を使用します。
....

クラス MessageBag は Jsonable、JsonSerializable を実装します...

/*
 * オブジェクトを JSON 表現に変換します。
 */
パブリック関数 toJson ($options = 0) {
    return json_encode($this->jsonSerialize(), $options);
}

/*
 *オブジェクトをJSONシリアル化可能なものに変換します。
 */
パブリック関数 jsonSerialize() {
    return $this->toArray();
}

先輩方、toJsonメソッドとjsonSerializeメソッドの違いを教えてください。いつ暗黙的に呼び出されますか?

大家讲道理大家讲道理2781日前749

全員に返信(4)返信します

  • 天蓬老师

    天蓬老师2017-05-16 13:02:38

    ドキュメントを参照してください: http://php.net/manual/zh/json...
    コードをアップロードしてください:

    リーリー

    JsonSerializable 自体は特に json_encode シリアル化を提供し、toJson は単なる laravel の Jsonable メソッドです。

    言い換えると、json_encode を使用してこのオブジェクトをシリアル化すると、jsonSerialize メソッドが呼び出されます。

    そして、toJson は通常、セマンティクスのためだけに json_encode 関数をカプセル化するだけです。

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:02:38

    これが好きですか?

    リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-05-16 13:02:38

    あまり詳しくないので調べてみました:
    http://www.cnblogs.com/gniele...

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:02:38

    ご招待ありがとうございます!

    larvalを使ったことがないので、toJsonメソッドとjsonSerializeメソッドの具体的なコードを投稿していただけませんか

    返事
    0
  • キャンセル返事