JSON を使用したプライベート メンバーを含む PHP オブジェクトのエンコード
PHP オブジェクトを JSON にエンコードするときに、オブジェクトにプライベート メンバーが含まれている場合、問題が発生する可能性があります。デフォルトでは、プライベート メンバーはクラスの外部からアクセスできません。
エンコード関数とプライベート メンバー
提供されたコード スニペットは、オブジェクトのプロパティを反復処理するカスタム エンコード関数を示しています。そしてそれらを $json オブジェクトに保存します。ただし、オブジェクトにネストされたオブジェクトが含まれている場合、この方法には制限があります。
JsonSerializable インターフェイスの実装
この課題を克服するには、JsonSerializable インターフェイスを実装することをお勧めします。このインターフェイスは、jsonSerialize という 1 つのメソッドを定義します。これにより、シリアル化されるデータを制御できます。
シリアル化のカスタマイズ
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 中国語 Web サイトの他の関連記事を参照してください。