찾다

 >  Q&A  >  본문

toJson 메서드와 jsonSerialize 메서드의 차이점은 무엇입니까?

Illuminate\Support\MessageBag 클래스 메소드를 보면 클래스는 다음과 같습니다:

JsonSerialized를 사용합니다.
Illuminate\Contracts\Support\Jsonable을 사용하세요.
....

MessageBag 클래스는 Jsonable, JsonSerialized...를 구현합니다.

/*
 * 객체를 JSON 표현으로 변환합니다.
 */
공개 함수 toJson($options = 0) {
    return json_encode($this->jsonSerialize(), $options);
}

/*
 *객체를 JSON 직렬화 가능한 것으로 변환합니다.
 */
공개 함수 jsonSerialize() {
    $this->toArray()를 반환합니다.
}

선배님들, toJson 메소드와 jsonSerialize 메소드의 차이점이 무엇인지 알려주세요. 언제 암시적으로 호출되나요?

大家讲道理大家讲道理2748일 전726

모든 응답(4)나는 대답할 것이다

  • 天蓬老师

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

    문서 참고: http://php.net/manual/zh/json...
    코드 업로드:

    으아악

    JsonSerialized 자체는 특별히 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
  • 취소회신하다