JSON을 사용하여 비공개 멤버로 PHP 객체 인코딩
PHP 객체를 JSON으로 인코딩할 때 객체에 비공개 멤버가 포함되어 있으면 문제가 발생할 수 있습니다. 기본적으로 비공개 멤버는 클래스 외부에서 액세스할 수 없습니다.
함수 및 비공개 멤버 인코딩
제공된 코드 조각은 객체의 속성을 반복하는 사용자 정의 인코딩 함수를 보여줍니다. $json 객체에 저장합니다. 그러나 객체에 중첩된 객체가 포함된 경우 이 접근 방식에는 제한이 있습니다.
JsonSerialize 인터페이스 구현
이 문제를 극복하려면 JsonSerialize 인터페이스를 구현하는 것이 좋습니다. 이 인터페이스는 직렬화되는 데이터를 제어할 수 있는 jsonSerialize라는 하나의 메서드를 정의합니다.
직렬화 사용자 정의
jsonSerialize를 구현하면 어떤 속성이 직렬화되어야 하는지 지정할 수 있습니다. JSON 표현에 포함됩니다. 다음 코드는 이 인터페이스를 구현하고 원하는 데이터를 반환하는 방법을 보여줍니다.
class Item implements \JsonSerializable { private $var; private $var1; private $var2; public function __construct() { // ... } public function jsonSerialize() { $vars = get_object_vars($this); return $vars; } }
json_encode 사용
jsonSerialize 메서드가 구현되면 json_encode는 jsonSerialize 구현에 지정된 비공개 멤버를 포함한 객체입니다.
위 내용은 비공개 멤버가 포함된 PHP 개체를 JSON으로 어떻게 인코딩할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!